نحوه مشارکت در پروژههای منبع باز – گردش کار Git و GitHub برای مبتدیان
اولین باری که در مورد منبع باز یاد گرفتم از طریق توییتی بود که Hacktoberfest را در سال ۲۰۱۹ تبلیغ کرد. و اولین درخواست جذب من که تا به حال پذیرفته شد اضافه کردن عنوان کتاب در شکلک به فهرست بود.
ممکن است فکر کنید، "شما نمی توانید آن را به عنوان یک مشارکت منبع باز حساب کنید. این یک شوخی است!"
من خودم همین فکر را داشتم - تا همین اواخر. خیس شدن پاهایم در منبع باز دلهره آور بود، با این حال از آن عبور کردم. و با نگاهی به گذشته، از اولین مشارکت چیزهای زیادی یاد گرفتم.
به عنوان یک تازه کار که چیزی در مورد منبع باز نمی دانستم، یاد گرفتم که چگونه با نگهبانان ارتباط برقرار کنم، چگونه با Git و GitHub کار کنم و چگونه یک درخواست کشش ایجاد کنم. این یک منحنی یادگیری بزرگ بود!
این یکی از دلایلی است که من این راهنما را نوشتم: اینکه سفر شما در مشارکت در پروژههای منبع باز هموارتر و کمتر دلهرهآور باشد.
در این راهنما، هنگام مشارکت در پروژههای منبع باز، شما را از طریق گردش کار اصلی Git و GitHub راهنمایی میکنم. من همچنین توضیح خواهم داد که چگونه مخازن فورکی و محلی خود را با مخزن اصلی همگام سازی کنید و چگونه تضادهای ادغام را در صورت مواجهه با آن حل کنید.
بدون مقدمه، بیایید شروع کنیم!
فهرست مطالب
پیش نیازها
برای دنبال کردن این آموزش، به موارد زیر نیاز دارید:
یک حساب GitHub
یک ویرایشگر کد مانند VSCode روی دستگاه شما نصب شده است.
آیا همه پروژه های GitHub منبع باز هستند؟
هنگامی که شما علاقه مند به مشارکت هستید، باید مطمئن شوید که پروژه ای که به آن علاقه دارید منبع باز است. شما نمی توانید فرض کنید که همه پروژه های GitHub متن باز هستند.
در این بخش، آنچه را که باید تحلیل کنید تا بدانید یک پروژه منبع باز است را به اشتراک میگذارم.
مجوز
مجوز اولین چیزی است که می خواهید تحلیل کنید. پروژه در GitHub منبع باز نیست مگر اینکه مجوز داشته باشد.
در اکثر حوزههای قضایی، پروژهای بدون مجوز بهطور خودکار بهعنوان «همه حقوق محفوظ است» توسط مالک آن مجوز میگیرد. این بدان معنی است که هیچ کس نمی تواند بدون اجازه مالک از پروژه استفاده کند، تغییر دهد یا دوباره توزیع کند. اگر آن را نادیده بگیرید، آنها می توانند از نظر قانونی از شما شکایت کنند.
می توانید مجوز را در فایلی به نام LICENSE
پیدا کنید. معمولاً در بخش "درباره" مخزن مشاهده می کنید.
راهنمای مشارکت
اکثر پروژه های منبع باز زمانی که دارای راهنمای مشارکت باشند، آماده دریافت مشارکت هستند. این راهنما شامل همه چیزهایی است که شما باید در مورد نحوه مشارکت در پروژه بدانید، از باز کردن یک موضوع تا ایجاد یک درخواست کشش. از کد رفتاری گرفته تا سبک ارتباطی مورد انتظار.
رویه ها و الزامات مشارکت در پروژه های منبع باز ممکن است از یکی به دیگری متفاوت باشد. شما همیشه می خواهید هنگام مشارکت در یک پروژه راهنما را بخوانید و دنبال کنید.
معمولاً، بخشی در مورد راهنمای مشارکت در README پیدا خواهید کرد. اما اگر نتوانستید آن را در آنجا پیدا کنید، به دنبال فایلی به نام CONTRIBUTING.md
یا هر چیزی مشابه باشید.
موضوع و برچسب جشنواره هکتوبرفست
Hacktoberfest یک رویداد سالانه در ماه اکتبر است که توسط DigitalOcean برای پشتیبانی از منبع باز حمایت می شود.
برای شرکت در این رویداد، باید قبل از مشارکت، تحلیل کنید که آیا یک پروژه در Hacktoberfest درگیر است یا خیر.
پروژهای که در رویداد شرکت میکند باید یک موضوع hacktoberfest
داشته باشد که میتوانید آن را در بخش «درباره» در صفحه اصلی مخزن برچسبگذاری کنید.
این پروژه همچنین باید دارای مسائلی باشد که برچسب hacktoberfest
دارند. بدون این برچسب، موضوع بخشی از رویداد نیست، اگرچه مخزن ممکن است موضوعات دیگری hacktoberfest
داشته باشد.
چگونه یک مخزن را فورک کنیم
پس ، شما آماده هستید تا در یک مخزن انتخابی خود مشارکت کنید. اولین کاری که باید انجام دهید این است که مخزن را فورک کنید.
فورک به معنای ایجاد یک کپی از یک مخزن در حساب GitHub شما است.
شما همیشه می خواهید یک مخزن را فورک کنید زیرا اکثر صاحبان پروژه های منبع باز به مشارکت کنندگان اجازه نمی دهند تا تغییرات را مستقیماً به مخازن خود اعمال کنند.
طبق قرارداد، مخزن فورک شده شما مخزن origin
نامیده می شود، در حالی که مخزن اصلی مخزن upstream
است. من از این پس از این نام مستعار برای متمایز کردن آنها استفاده خواهم کرد.
در صفحه اصلی مخزن در GitHub، روی دکمه Fork
در بالا سمت راست کلیک کنید:
شما را به فرم "ایجاد فورک جدید" هدایت می کند. می توانید ورودی ها را همانطور که هست رها کنید. سپس روی دکمه سبز رنگ «ایجاد چنگال» در پایین کلیک کنید.
با این کار یک کپی از مخزن در حساب GitHub شما ایجاد می شود.
نحوه کلون کردن یک مخزن
پس از فورک کردن مخزن، کار بعدی این است که آن را شبیه سازی کنید.
شبیه سازی یک مخزن به معنای ایجاد یک کپی از یک مخزن در محیط محلی شما است. هنگام مشارکت در یک پروژه منبع باز، باید مخزن فورک شده خود را شبیه سازی کنید.
در اینجا مراحلی وجود دارد که باید دنبال کنید:
مرحله شماره ۱ - به مخزن فورک شده بروید
با این مراحل به مخزن فورکی خود بروید:
روی آواتار خود در بالا سمت راست کلیک کنید.
روی Your repositories
در منوی کشویی کلیک کنید.
روی مخزنی که می خواهید کلون کنید کلیک کنید تا باز شود.
سپس بر روی دکمه سبز <> Code
کلیک کنید. URL HTTPS را با کلیک کردن روی نماد کپی کپی کنید.
برای اطمینان از اینکه مخزن فورک شده را شبیه سازی می کنید، باید نام کاربری GitHub خود را در پیوند مشاهده کنید. مثلا:
https://github.com/<github-username>/<repository-name>.git
مرحله شماره ۲ - پروژه را به صورت محلی کلون کنید
در ترمینال خود، دستور git clone
را به همراه URL که کپی کرده اید اجرا کنید:
git clone <copied-url>
با این دستور می توانید به دایرکتوری پروژه بروید:
cd <project-name>
چگونه یک شعبه جدید ایجاد کنیم
بهترین روش در متن باز این است که هر زمان که می خواهید روی موضوعی کار کنید، یک شعبه جدید ایجاد کنید. یک شاخه جدید تغییرات شما را جدا می کند و شاخه main
را تمیز نگه می دارد.
این دستور را برای ایجاد یک شاخه جدید اجرا کنید و به آن بروید:
git checkout -b <branch-name>
اگرچه میتوانید هر نامی به یک شاخه بدهید، اما باید از قراردادهای مربوط به نامگذاری یک شاخه پیروی کنید. نام شعبه معمولاً به تغییری که انجام می دهید اشاره دارد. به عنوان مثال، feature/add-dark-mode
یا bugfix/broken-link-to-about-page
.
اکنون می توانید شروع به ایجاد تغییرات در شعبه جدید خود کنید.
نحوه اضافه کردن تغییرات به ناحیه مرحله بندی
فرض کنید کار روی تغییرات را تمام کرده اید. قبل از ارتکاب، ابتدا باید آنها را به قسمت صحنه اضافه کنید.
این مرحله به شما این امکان را می دهد که تغییرات خود را حفظ کنید در حالی که هنوز می توانید قبل از انجام آنها را تغییر دهید. همچنین به شما امکان میدهد انتخاب کنید که کدام تغییر(های) را آماده انجام دهید.
گفت ن تغییرات به منطقه صحنه سازی اغلب به عنوان یک مرحله کمتر بحرانی تلقی می شود. اما این درست نیست. این مرحله به شما امکان می دهد قبل از انجام تعهد نظر خود را تغییر دهید. زیرا هنگامی که تغییرات خود را انجام می دهید، یک قطعه داستان به تاریخچه پروژه اضافه می کنید.
نحوه اضافه کردن فایل های منفرد یا چندگانه به ناحیه مرحله بندی
هنگامی که می خواهید یک یا چند فایل - اما نه همه - را به قسمت مرحله اضافه کنید، این دستور را اجرا کنید:
git add <file-name-1> <file-name-2>
مثلا:
git add README.md CONTRIBUTING.md
دستور بالا فایل های REAME.md و CONTRIBUTING.md را به ناحیه مرحله اضافه می کند.
وقتی فایل(های) تودرتو را به ناحیه مرحله بندی اضافه می کنید، می خواهید مسیر(های) را به فایل(ها) اضافه کنید. اگر نمیتوانید مسیر دقیق را تشخیص دهید، اجرای git status
به شما کمک میکند تا وضعیت فایلهایی را که حاوی تغییرات شما هستند به شما ارائه دهد.
در اینجا نحوه انجام آن آمده است:
git status
در ترمینال خود اجرا کنید. چیزی شبیه به این خواهید دید:
مسیر را کپی کنید و دستور git add
را به همراه مسیر(های) فایل(ها) اجرا کنید:
git add <path-to-file-1> <path-to-file-2>
در اینجا نمونه ای از گفت ن مسیر به دو فایل بر اساس تصویر بالا آورده شده است:
git add app/routes/__frontend/resources/index.mdx app/routes/__frontend/resources/developer-resources/open-source/index.mdx
نحوه اضافه کردن همه فایل ها
هنگامی که می خواهید همه فایل ها را به قسمت مرحله اضافه کنید، این دستور را اجرا کنید:
git add .
این همه فایلها را با تغییراتی به قسمت مرحلهبندی اضافه میکند.
نحوه انجام تغییرات
commit به معنای ثبت تغییرات است. به همین دلیل است که یک commit به یک پیام به عنوان رکورد نیاز دارد. با گذشت زمان، commit ها داستان تاریخ پروژه را بازگو خواهند کرد. پس ، یک پیام تعهد واضح و توصیفی ضروری است.
آنچه باید هنگام انجام تغییرات خود بدانید:
تغییرات خود را اغلب اضافه و انجام دهید . بهترین زمان برای اضافه کردن و انجام تغییرات هر بار است که ایجاد یک تغییر معنی دار را به پایان می رسانید، حتی اگر این یک تغییر کوچک باشد. متعهد شدن کار خود پس از اتمام نیز از انتقال تغییرات شما به شاخه های دیگر جلوگیری می کند.
از یک پیام واضح و توصیفی استفاده کنید . "تغییر رنگ پس زمینه از مشکی به آبی تیره" بیشتر از "سبک اصلاح" توصیفی و برای همه آسان است.
برای ایجاد یک commit، این دستور را در ترمینال خود اجرا کنید:
git commit -m "Your message"
در اینجا یک مثال از یک خط commit آورده شده است:
git commit -m "Fix the link to the About page"
و در اینجا یک commit با چندین خط وجود دارد:
git commit -m "Fix the link to the About page Fix the typos in the About page"
نحوه همگام سازی تغییرات
هنگامی که روی تغییرات کار می کنید، این احتمال وجود دارد که شاخه main
در مخزن upstream
قبلاً در برخی از درخواست های کششی ادغام شده باشد. پس ، وضعیت origin
و مخازن محلی شما در این زمان دیگر مانند upstream
نخواهد بود.
به همین دلیل، همیشه باید شعبه کاری محلی خود را به روز کنید تا همان حالت مخزن upstream
را فشار دهید.
نحوه به روز رسانی مخزن origin
ابتدا، به مخزن origin
در GitHub بروید تا تحلیل کنید که آیا به روز است یا upstream
.
وقتی هیچ تغییری در مخزن upstream
وجود ندارد، میتوانید تغییرات خود را فشار دهید.
برای اطلاع از به روز بودن مخزن origin
، پیامی را مشاهده می کنید که می گوید: "این شاخه با <repository and branch names> به روز است" در صفحه اصلی مخزن، همانطور که در تصویر زیر نشان داده شده است:
اما زمانی که تغییراتی ایجاد شود، پیامی خواهید دید که می گوید: "این شاخه X commit(های) پشت <مخزن و نام شعب> است".
برای به روز رسانی مخزن origin
:
روی دکمه کشویی Sync fork
کلیک کنید.
روی دکمه سبز رنگ Update branch
کلیک کنید.
پس از بهروزرسانی، اعلان «واکشی با موفقیت و فوروارد سریع از بالادست <نامهای مخزن و شعب>» را در بالا مشاهده خواهید کرد.
چگونه تغییرات را بکشیم
اکنون که origin
شما با مخزن upstream
به روز شده است، زمان آن رسیده است که تغییرات را اعمال کنید و مخزن محلی خود را به روز کنید.
Pull راهی برای دریافت تغییرات جدید از راه دور به مخزن محلی است.
برای ایجاد تغییرات، مطمئن شوید که در شاخه کاری خود هستید. با اجرای git status
می توانید این کار را انجام دهید:
دستور git pull
را اجرا کنید تا تغییرات را از شاخه main
در مخزن origin
بکشید:
git pull origin main
اگر نیازی به حل تعارض ندارید، اکنون می توانید تغییرات خود را فشار دهید.
چگونه تضادهای ادغام را حل کنیم
پس از به روز رسانی مخزن محلی خود، ممکن است با تداخل هایی مواجه شوید که قبل از اینکه بتوانید تغییرات خود را اعمال کنید، باید آنها را برطرف کنید.
مواجهه با این تضادها در پروژه های منبع باز معمول است. تداخل ادغام معمولاً زمانی رخ می دهد که تغییراتی در یک خط(های) و فایل(ها) از دو شاخه مختلف وجود داشته باشد.
هنگامی که یک تضاد ایجاد می شود، گزینه هایی برای پذیرش تغییرات در بالای فضای کاری خود در VSCode خواهید دید. همچنین تغییر(های) دیگری متفاوت از تغییر خود خواهید دید - تغییر ورودی.
نحوه رفع تضادهای ادغام
هنگامی که می خواهید یک تضاد را حل کنید، می توانید از بین گزینه های مختلف انتخاب کنید:
پذیرش تغییر فعلی : زمانی که میخواهید فقط تغییرات خود را حفظ کنید.
پذیرش تغییر ورودی : زمانی که می خواهید فقط تغییرات ورودی را بپذیرید که مال شما نیستند.
Accept Both Changes : زمانی که می خواهید تغییرات خود و تغییرات دریافتی را بپذیرید.
شما همچنان می توانید در صورت لزوم پس از انتخاب اقدام مطلوب، موارد را اصلاح کنید.
پس از رفع تضادها، سپس می توانید تغییرات خود را به قسمت مرحله اضافه کنید و آنها را انجام دهید.
از آنجایی که شما تغییرات را در یک فایل موجود اضافه کرده و انجام می دهید، می توانید این دستور را برای انجام هر دو عمل به طور همزمان اجرا کنید:
git commit -am "Your message"
چگونه تغییرات را تحت فشار قرار دهیم
اکنون زمان آن است که تغییرات خود را تحت فشار قرار دهید. این به معنای انتقال تغییرات از مخزن محلی به مخزن راه دور است.
شما همیشه می خواهید تغییرات خود را به مخزن origin
فشار دهید. برای انجام این کار، این دستور را در ترمینال خود اجرا کنید:
git push origin <branch-name>
این احتمال وجود دارد که این پیغام خطا را دریافت کنید:
می توانید دستور را در پیام خطا در ترمینال خود کپی، پیست و اجرا کنید:
git push --set-upstream origin <branch-name>
همچنین می توانید این دستور را اجرا کنید:
git push -u origin <branch-name>
نحوه ایجاد درخواست کشش
درخواست کشش - که معمولاً PR نامیده می شود - راهی است برای اطلاع دیگران از اینکه یک شعبه با تغییرات به یک مخزن راه دور منتقل شده است.
پس از باز شدن یک درخواست کشش، نگهبانان می توانند تغییرات شما را تحلیل و در مورد آن بحث کنند. آنها می توانند قبل از اینکه بتوانند درخواست کشش شما را ادغام کنند یا بلافاصله آنها را در شاخه main
ادغام کنند، از شما بخواهند تغییرات بیشتری ایجاد کنید.
نحوه ایجاد یک درخواست کشش
ابتدا به مخزن upstream
یا origin
در GitHub بروید.
سپس روی دکمه سبز رنگ Compare & pull request
کلیک کنید تا به فرم Open a pull request
هدایت شوید:
سپس فرم درخواست کشش را پر کنید. اگر یک الگوی درخواست کشش وجود دارد، تمام قسمتهای مورد نیاز را تکمیل کنید تا به نگهبانان کمک کنید تغییرات شما را تحلیل کنند.
اگر الگوی درخواست کشش وجود ندارد، می توانید درخواست کشش را به صورت ساختاریافته بنویسید. هنگام نوشتن درخواست کشش خود به این نکته توجه کنید:
عنوانی کوتاه، واضح و آموزنده.
توضیح واضح تغییرات
لینک موضوع مرتبط به عنوان مثال، "Closes #456".
اسکرین شات یا ضبط صفحه در صورت لزوم.
در نهایت، روی دکمه سبز Create pull request
در پایین کلیک کنید تا یک PR ایجاد شود.
کلمات پایانی
مشارکت در پروژههای متنباز میتواند دلهرهآور باشد و باعث شود در ابتدا احساس ترس کنید. اما مانند سایر مهارت ها، با تمرین مداوم، بهتر خواهید شد.
علاوه بر درک Git و GitHub، جنبه های غیر فنی منبع باز وجود دارد که شما نیز باید بدانید .
و به محض دستیابی، منبع باز می تواند بسیار سرگرم کننده باشد!
اگر این مقاله را دوست داشتید و لذت بردید، لطفا آن را با دیگران به اشتراک بگذارید. می توانید کارهای دیگر من را در وبلاگ من بیابید، و بیایید در X (توئیتر سابق) یا لینکدین وصل شویم!
ارسال نظر