آشنایی با مفهوم فورک در گیت هاب (Fork a repository)
فورک در گیت هاب چیست؟ به زبانی ساده Fork کردن به معنای ایجاد یک مخزن جدید است که کدها و تنظیمات دسترسی را با مخزن اصلی یا « upstream repository» به اشتراک میگذارد. این امکان را به توسعهدهندگان میدهد تا بر روی پروژههای نرمافزاری به صورت مستقل کار کنند، ضمن اینکه امکان همکاری با مخزن upstream را نیز حفظ میکند. گیت با ارائه روشهای متنوع و قابل تطبیق، امکانات گستردهای برای هدایت و توسعه پروژهها ایجاد کرده است. هرکدام از این روشها، به عنوان گردشِ کار (workflow) شناخته میشوند. Git workflow، انعطاف لازم برای پاسخگویی به نیازهای مختلف توسعه را فراهم میکند. این مقاله یک راهنمای جامع در مورد فورک در گیت هاب است.
درباره فورک
فورک در گیت هاب، یک مخزن جدید است که کدها و تنظیمات دیداری را با مخزن اصلی یا «مخزن upstream» به اشتراک میگذارد. فورکها اغلب برای آزمایش ایدهها یا تغییرات، قبل از پیشنهاد دادن آنها به مخزن اصلی استفاده میشوند، مانند پروژههای متنباز یا زمانی که کاربر دسترسی نوشتن به مخزن بالادستی را ندارد.
برای بهرهبرداری موثر از گیت، استفاده از یک git client مناسب، مانند Fork یا GitHub Desktop، میتواند فرآیند توسعه را سادهتر و کارآمدتر کند.
پیشنهاد تغییرات در پروژه دیگران
برای ارائه تغییرات در پروژههای دیگران، میتوانید از فورک استفاده کنید. بهعنوان مثال، اگر باگی مثل کانفلیکت در گیت پیدا کردید، به جای ثبتِ آن بهعنوان یک مشکل، مراحل زیر را دنبال کنید:
- ابتدا، نسخهای از مخزن مورد نظر را بر روی حساب کاربری خود در گیت هاب، فورک کنید.
- سپس، اصلاح لازم برای رفع باگ را در نسخه فورکشده خود انجام دهید.
- در نهایت، درخواستی (پول ریکوئست/ pull request) برای ادغام تغییرات خود به صاحب اصلی پروژه ارسال کنید تا بررسی و در صورت تایید، اعمال شود.
این روش به شما امکان میدهد تا به صورت مستقل برای رفع اشکال کار کنید و پس از آن، تغییرات خود را برای بررسی و ادغام در پروژه اصلی پیشنهاد دهید.
استفاده از پروژه دیگران به عنوان نقطه شروع برای ایده خودتان
از پروژههای دیگران بهعنوان نقطه شروع برای ایدههای خودتان استفاده کنید. نرمافزار متنباز بر این ایده استوار است که با به اشتراکگذاری کد، میتوانیم نرمافزاری بهتر و قابل اعتمادتر بسازیم. زمانی که مخزن عمومی خود را از شاخه (fork) پروژه دیگران ایجاد میکنید، حتماً یک فایل مجوز (license file) در آن قرار دهید که نحوه به اشتراکگذاری پروژه شما با دیگران را مشخص میکند.
پیشنهاد مطالعه: معرفی بهترین ابزارهای گیت – آشنایی با چند جادوگر گیت
پیشنیازها
اگر هنوز این کار را انجام ندادهاید، ابتدا گیت را راهاندازی کنید و با استفاده از گیت، احراز هویت خود را در GitHub.com انجام دهید.
فورک کردن یک مخزن
ممکن است برای پیشنهاد تغییرات به مخزن اصلی، یک پروژه را فورک کنید. در این حالت، همگامسازی منظم فورک خود با مخزن اصلی یک روش خوب است. برای انجام این کار، باید از گیت در خط فرمان استفاده کنید. میتوانید با استفاده از همان مخزن octocat/Spoon-Knife که تازه فورک کردهاید، تنظیم مخزن اصلی را تمرین کنید.
۱. در GitHub.com، به مخزن octocat/Spoon-Knife بروید.
۲. در گوشه بالا سمت راست صفحه، روی Fork کلیک کنید.
3. زیر بخشِ «Owner»، را از منوی کشویی انتخاب کرده و یک مالک برای مخزنِ فورکشده انتخاب کنید.
4. به طور پیشفرض، فورکها همان نامِ مخازن اصلی خود را دارند. در صورت تمایل، برای شخصیسازیِ بیشترِ فورک خود، در فیلد «Repository name»، یک نام جدید وارد کنید.
5. در صورت تمایل، در فیلد «Description»، توضیحی درباره فورک خود بنویسید.
6. در صورت تمایل، گزینه Copy the DEFAULT branch only را انتخاب کنید. برای بسیاری از سناریوهای فورک در گیت هاب، مانند مشارکت در پروژههای منبع باز، باید شاخه پیشفرض را کپی کنید. اگر این گزینه را انتخاب نکنید، تمام شاخهها در فورک جدید کپی خواهند شد.
7. روی «Create fork» کلیک کنید.
توجه: از طریق صفحه Branches، کپی کردن شاخههای اضافی از مخزن اصلی را انجام دهید.
کلون کردن مخزن فورکشده شما
در حال حاضر، شما یک فورک از مخزن Spoon-Knife دارید، اما فایلهای آن مخزن به صورت محلی روی کامپیوتر شما وجود ندارند.
برای کلون کردن مراحل زیر را انجام دهید:
۱. در GitHub.com، به فورک خود از مخزن Spoon-Knife بروید.
۲. بالای لیست فایلها، روی Code کلیک کنید.
۳. URL مخزن را کپی کنید.
- برای کلون کردن مخزن با استفاده از HTTPS، زیربخشِ «HTTPS»، را بزنید.
- برای کلون کردن مخزن با استفاده از کلید SSH، روی «SSH» کلیک کنید.
- برای کلون کردن مخزن با استفاده از GitHub CLI، روی «GitHub CLI» کلیک کنید.
۴. Git Bash را باز کنید.
۵. دایرکتوری کاری فعلی را به مکانی که میخواهید دایرکتوری کلونشده در آن قرار گیرد، تغییر دهید.
۶. دستور git clone را تایپ کرده و سپس URL کپیشده قبلی را جایگذاری کنید. در مثالِ زیر، YOUR-USERNAME باید با نام کاربری واقعی شما در گیتهاب جایگزین شود تا دستور کار کند. این کار باعث میشود که نسخهای از مخزنِ مورد نظر در کامپیوتر شما ایجاد شود.
git clone https://github.com/YOUR-USERNAME/Spoon-Knife
۷. Enter را فشار دهید تا کلون محلی شود.
git clone https://github.com/YOUR-USERNAME/Spoon-Knife $
> Cloning into `Spoon-Knife`…
> remote: Counting objects: 10, done.
> remote: Compressing objects: 100% (8/8), done.
> remote: Total 10 (delta 1), reused 10 (delta 1)
> Unpacking objects: 100% (10/10), done.
پیشنهاد مطالعه: راه اندازی مخزن گیت – آموزش کامل راه اندازی Git repository
همگامسازی فورک با مخزن اصلی
برای همگامسازی فورک در گیت هاب با مخزن اصلی، مراحل زیر را دنبال کنید:
۱. در وبسایت GitHub.com، به مخزن octocat/Spoon-Knife بروید.
۲. بالای لیست فایلها، روی دکمه «Code» کلیک کنید.
۳. URL مخزن را کپی کنید.
- برای کلون کردن مخزن با استفاده از HTTPS، زیربخشِ «HTTPS»، را بزنید.
- برای کلون کردن مخزن با استفاده از کلید SSH، روی «SSH» کلیک کنید.
- برای کلون کردن مخزن با استفاده از GitHub CLI، روی «GitHub CLI» کلیک کنید.
4. Git Bash را باز کنید.
۵. به مکانی که فورک خود را کلون کردهاید، دایرکتوریها را تغییر دهید.
- برای رفتن به دایرکتوری خود، دستور «cd» را بدون هیچ متن دیگری تایپ کنید.
- برای لیست کردن فایلها و پوشهها در دایرکتوری فعلی خود، دستور «ls» را تایپ کنید.
- برای ورود به یکی از دایرکتوریهای لیستشده، دستور «cd YOUR-LISTED-DIRECTORY» را تایپ کنید.
- برای بالا رفتن یک دایرکتوری، دستور «cd …» را تایپ کنید.
۶. دستور git remote -v را تایپ کنید و Enter را فشار دهید. اکنون مخزن راه دور (remote repository) فعلی تنظیمشده برای فورک خود را مشاهده خواهید کرد.
git remote -v $
> origin https://github.com/YOUR-USERNAME/YOUR-FORK.git (fetch)
> origin https://github.com/YOUR-USERNAME/YOUR-FORK.git (push)
7. برای افزودن مخزن اصل به فورک خود، ابتدا دستور «git remote add upstream» را وارد کنید. سپس URL را که در مرحله ۳ کپی کردید در ادامه دستور قرار دهید و کلید Enter را بزنید. مانند مثال زیر عمل کنید:
git remote add upstream https://github.com/ORIGINAL-OWNER/Spoon-Knife.git
8. برای تأیید مخزن بالادستی جدیدی که برای فورک خود مشخص کردهاید، دستور «git remote -v»را دوباره وارد کنید. شما باید URL مربوط به فورک خود را به عنوان «origin» و URL مخزن بالادستی را به عنوان «upstream» مشاهده کنید. این کار به شما امکان میدهد تا از ارتباط صحیح بین فورک شما و مخزن بالادستی اطمینان حاصل کنید. نمونهای از خروجی این دستور به شکل زیر است:
$ git remote -v
> origin https://github.com/YOUR-USERNAME/YOUR-FORK.git (fetch)
> origin https://github.com/YOUR-USERNAME/YOUR-FORK.git (push)
> upstream https://github.com/ORIGINAL-OWNER/ORIGINAL-REPOSITORY.git (fetch)
> upstream https://github.com/ORIGINAL-OWNER/ORIGINAL-REPOSITORY.git (push)
اکنون، میتوانید با اجرای چند دستور گیت، فورک در گیت هاب خود را با مخزن اصلی (upstream) بهروز نگه دارید.
ویرایش فورک
شما میتوانید هر تغییری را بر روی یک فورک در گیت هاب اعمال کنید، از جمله:
- ایجاد شاخهها (Branches): git branch به شما امکان میدهد تا قابلیتهای نوینی را توسعه دهید یا ایدههایی را آزمایش کنید، بدون اینکه پروژه اصلی خود را در معرض خطر قرار دهید.
- ارسال درخواستهای ادغام (Pull Requests): برای کمک به مخزن اصلی (upstream)، میتوانید درخواستی را به نویسنده اصلی ارسال کنید تا فورکِ شما را با ارسال یک درخواست ادغام (pull request)، به مخزن خود اضافه کنند.
مخزن دیگری برای فورک پیدا کنید
برای شروع مشارکت در پروژههای نرمافزاری، فورک در گیت هاب را بهعنوان گام نخست در نظر بگیرید؛ شما قادرید هر مخزن عمومی را به حساب کاربری شخصی خود یا به سازمانی که در آن اجازه ایجاد مخازن را دارید، فورک کنید. اگر به مخزن خصوصی دسترسی دارید و صاحب آن اجازه فورک کردن را میدهد، میتوانید آن مخزن را به حساب کاربری شخصی خود یا به سازمانی در تیم گیتهاب که اجازه ایجاد مخازن را دارید، فورک کنید. البته نمیتوانید یک مخزن خصوصی را به سازمانی با استفاده از گیتهاب رایگان فورک کنید.
پیشنهاد مطالعه: Git LFS چیست؟ راهنمای کامل Git large file storage
مراحل بعدی
شما اکنون یک مخزن را فورک کردهاید، تمرین کلون کردن فورک در گیت هاب خود را انجام دادهاید و یک مخزن اصلی را پیکربندی کردهاید.
- علاوهبر این میتوانید یک مخزن جدید ایجاد کنید که در آن تمام پروژههای خود را قرار دهید و کد را در گیتهاب به اشتراک بگذارید. ایجاد یک مخزن برای پروژهتان به شما امکان میدهد کد را در گیتهاب ذخیره کنید. این یک پشتیبان از کار شما فراهم میکند که میتوانید انتخاب کنید تا با سایر توسعهدهندگان به اشتراک بگذارید.
- هر مخزن در گیتهاب متعلق به یک فرد یا سازمان است. شما میتوانید با افراد، مخازن و سازمانها با اتصال و دنبال کردن آنها در گیتهاب تعامل داشته باشید.
- گیتهاب یک جامعه پشتیبانی عالی دارد که میتوانید برای کمک خواستن و صحبت با افراد از سراسر جهان به آن مراجعه کنید. به گفتگو در جامعه گیت هاب بپیوندید.
سخن پایانی
در این مقاله، با مفهوم فورک در گیت هاب و چگونگی استفاده از آن برای همکاری در پروژههای نرمافزاری آشنا شدیم. فورک کردن به ما اجازه میدهد تا نسخهای شخصی از یک مخزن موجود در گیتهاب ایجاد کنیم، که این امکان را به ما میدهد تا بدون تأثیرگذاری بر مخزن اصلی، تغییرات یا افزودنیهای خود را اعمال کنیم.
همچنین، نحوه کلون کردن فورک به رایانه شخصی و پیکربندی یک مخزن بالادستی برای همگامسازی تغییرات بررسی شد. در نهایت، روشهای پیدا کردن ایده و پیوستن به جامعه پشتیبانی گیتهاب برای تعامل با سایر توسعهدهندگان و پیگیری آپدیتها مورد بحث قرار گرفت.
آموزش گیت در مکتب خونه
آیا تا به حال از خود پرسیدهاید گیت چیست؟ نگران نباشید، مکتب خونه با ارائه انواع آموزش گیت برای مبتدیان، شما را از مقدماتیترین مفاهیم تا پیچیدهترین جنبههای گیت همراهی میکند. این دورهها که با تعریف و کاربردهای اولیه گیت آغاز میشوند، به شما امکان میدهند تا با اطمینان در پروژههای نرمافزاری مشارکت کنید و در نهایت، به مهارتهای حرفهای در استفاده از این ابزار قدرتمند دست پیدا کنید.