متن خبر

نحوه مشارکت در پروژه‌های منبع باز – گردش کار Git و GitHub برای مبتدیان

نحوه مشارکت در پروژه‌های منبع باز – گردش کار Git و GitHub برای مبتدیان

شناسهٔ خبر: 436423 -




اولین باری که در مورد منبع باز یاد گرفتم از طریق توییتی بود که Hacktoberfest را در سال ۲۰۱۹ تبلیغ کرد. و اولین درخواست جذب من که تا به حال پذیرفته شد اضافه کردن عنوان کتاب در شکلک به فهرست بود.

ممکن است فکر کنید، "شما نمی توانید آن را به عنوان یک مشارکت منبع باز حساب کنید. این یک شوخی است!"

من خودم همین فکر را داشتم - تا همین اواخر. خیس شدن پاهایم در منبع باز دلهره آور بود، با این حال از آن عبور کردم. و با نگاهی به گذشته، از اولین مشارکت چیزهای زیادی یاد گرفتم.

به عنوان یک تازه کار که چیزی در مورد منبع باز نمی دانستم، یاد گرفتم که چگونه با نگهبانان ارتباط برقرار کنم، چگونه با Git و GitHub کار کنم و چگونه یک درخواست کشش ایجاد کنم. این یک منحنی یادگیری بزرگ بود!

این یکی از دلایلی است که من این راهنما را نوشتم: اینکه سفر شما در مشارکت در پروژه‌های منبع باز هموارتر و کمتر دلهره‌آور باشد.

در این راهنما، هنگام مشارکت در پروژه‌های منبع باز، شما را از طریق گردش کار اصلی Git و GitHub راهنمایی می‌کنم. من همچنین توضیح خواهم داد که چگونه مخازن فورکی و محلی خود را با مخزن اصلی همگام سازی کنید و چگونه تضادهای ادغام را در صورت مواجهه با آن حل کنید.

بدون مقدمه، بیایید شروع کنیم!

فهرست مطالب

پیش نیازها

برای دنبال کردن این آموزش، به موارد زیر نیاز دارید:

یک حساب GitHub

یک ویرایشگر کد مانند VSCode روی دستگاه شما نصب شده است.

آیا همه پروژه های GitHub منبع باز هستند؟

هنگامی که شما علاقه مند به مشارکت هستید، باید مطمئن شوید که پروژه ای که به آن علاقه دارید منبع باز است. شما نمی توانید فرض کنید که همه پروژه های GitHub متن باز هستند.

در این بخش، آنچه را که باید تحلیل کنید تا بدانید یک پروژه منبع باز است را به اشتراک می‌گذارم.

مجوز

مجوز اولین چیزی است که می خواهید تحلیل کنید. پروژه در GitHub منبع باز نیست مگر اینکه مجوز داشته باشد.

در اکثر حوزه‌های قضایی، پروژه‌ای بدون مجوز به‌طور خودکار به‌عنوان «همه حقوق محفوظ است» توسط مالک آن مجوز می‌گیرد. این بدان معنی است که هیچ کس نمی تواند بدون اجازه مالک از پروژه استفاده کند، تغییر دهد یا دوباره توزیع کند. اگر آن را نادیده بگیرید، آنها می توانند از نظر قانونی از شما شکایت کنند.

می توانید مجوز را در فایلی به نام LICENSE پیدا کنید. معمولاً در بخش "درباره" مخزن مشاهده می کنید.

repo-about-section-github-2
مجوز MIT در بخش "درباره" در نوار کناری سمت راست یک مخزن در GitHub

راهنمای مشارکت

اکثر پروژه های منبع باز زمانی که دارای راهنمای مشارکت باشند، آماده دریافت مشارکت هستند. این راهنما شامل همه چیزهایی است که شما باید در مورد نحوه مشارکت در پروژه بدانید، از باز کردن یک موضوع تا ایجاد یک درخواست کشش. از کد رفتاری گرفته تا سبک ارتباطی مورد انتظار.

رویه ها و الزامات مشارکت در پروژه های منبع باز ممکن است از یکی به دیگری متفاوت باشد. شما همیشه می خواهید هنگام مشارکت در یک پروژه راهنما را بخوانید و دنبال کنید.

معمولاً، بخشی در مورد راهنمای مشارکت در README پیدا خواهید کرد. اما اگر نتوانستید آن را در آنجا پیدا کنید، به دنبال فایلی به نام CONTRIBUTING.md یا هر چیزی مشابه باشید.

موضوع و برچسب جشنواره هکتوبرفست

Hacktoberfest یک رویداد سالانه در ماه اکتبر است که توسط DigitalOcean برای پشتیبانی از منبع باز حمایت می شود.

برای شرکت در این رویداد، باید قبل از مشارکت، تحلیل کنید که آیا یک پروژه در Hacktoberfest درگیر است یا خیر.

پروژه‌ای که در رویداد شرکت می‌کند باید یک موضوع hacktoberfest داشته باشد که می‌توانید آن را در بخش «درباره» در صفحه اصلی مخزن برچسب‌گذاری کنید.

about-repository-github
بخش "درباره" در نوار کناری سمت راست یک مخزن با hacktoberfest به عنوان یکی از موضوعات - اعتبار: AliceWonderland/hacktoberfest

این پروژه همچنین باید دارای مسائلی باشد که برچسب hacktoberfest دارند. بدون این برچسب، موضوع بخشی از رویداد نیست، اگرچه مخزن ممکن است موضوعات دیگری hacktoberfest داشته باشد.

شماره با برچسب hacktoberfest
مشکلی با برچسب Hacktoberfest - اعتبار: EddieHubCommunity/BioDrop

چگونه یک مخزن را فورک کنیم

پس ، شما آماده هستید تا در یک مخزن انتخابی خود مشارکت کنید. اولین کاری که باید انجام دهید این است که مخزن را فورک کنید.

فورک به معنای ایجاد یک کپی از یک مخزن در حساب GitHub شما است.

شما همیشه می خواهید یک مخزن را فورک کنید زیرا اکثر صاحبان پروژه های منبع باز به مشارکت کنندگان اجازه نمی دهند تا تغییرات را مستقیماً به مخازن خود اعمال کنند.

طبق قرارداد، مخزن فورک شده شما مخزن origin نامیده می شود، در حالی که مخزن اصلی مخزن upstream است. من از این پس از این نام مستعار برای متمایز کردن آنها استفاده خواهم کرد.

در صفحه اصلی مخزن در GitHub، روی دکمه Fork در بالا سمت راست کلیک کنید:

دکمه چنگال
دکمه Fork در GitHub

شما را به فرم "ایجاد فورک جدید" هدایت می کند. می توانید ورودی ها را همانطور که هست رها کنید. سپس روی دکمه سبز رنگ «ایجاد چنگال» در پایین کلیک کنید.

ایجاد-چنگال جدید
A Create a new fork با دکمه سبز Create fork در GitHub

با این کار یک کپی از مخزن در حساب GitHub شما ایجاد می شود.

نحوه کلون کردن یک مخزن

پس از فورک کردن مخزن، کار بعدی این است که آن را شبیه سازی کنید.

شبیه سازی یک مخزن به معنای ایجاد یک کپی از یک مخزن در محیط محلی شما است. هنگام مشارکت در یک پروژه منبع باز، باید مخزن فورک شده خود را شبیه سازی کنید.

در اینجا مراحلی وجود دارد که باید دنبال کنید:

مرحله شماره ۱ - به مخزن فورک شده بروید

با این مراحل به مخزن فورکی خود بروید:

روی آواتار خود در بالا سمت راست کلیک کنید.

روی Your repositories در منوی کشویی کلیک کنید.

روی مخزنی که می خواهید کلون کنید کلیک کنید تا باز شود.

سپس بر روی دکمه سبز <> Code کلیک کنید. URL HTTPS را با کلیک کردن روی نماد کپی کپی کنید.

برای اطمینان از اینکه مخزن فورک شده را شبیه سازی می کنید، باید نام کاربری GitHub خود را در پیوند مشاهده کنید. مثلا:

 https://github.com/<github-username>/<repository-name>.git

به این معنا که:

آواتار-گیتهاب
آواتار کاربر در GitHub
dropdown-github-1
منوی کشویی در GitHub که Your repositories برجسته می کند
clone-github-resize-2
یک دکمه <> Code و یک URL HTTPS یک مخزن به دنبال نماد کپی در GitHub

مرحله شماره ۲ - پروژه را به صورت محلی کلون کنید

در ترمینال خود، دستور 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-status-modified-files-4
git status که مسیرهای سه فایل اصلاح شده در ترمینال VSCode را نشان می دهد

مسیر را کپی کنید و دستور 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> به روز است" در صفحه اصلی مخزن، همانطور که در تصویر زیر نشان داده شده است:

به روز شعبه-github-1
یک شعبه به روز در مخزن origin در GitHub

اما زمانی که تغییراتی ایجاد شود، پیامی خواهید دید که می گوید: "این شاخه X commit(های) پشت <مخزن و نام شعب> است".

branch-x-commits-behind-github-2
پیامی که نشان می دهد یک شعبه در مخزن origin هشت commit در پشت مخزن upstream در GitHub است.

برای به روز رسانی مخزن origin :

    روی دکمه کشویی Sync fork کلیک کنید.

    روی دکمه سبز رنگ Update branch کلیک کنید.

به روز رسانی-شاخه
دکمه های Update branch Sync fork و به روز رسانی در GitHub

پس از به‌روزرسانی، اعلان «واکشی با موفقیت و فوروارد سریع از بالادست <نام‌های مخزن و شعب>» را در بالا مشاهده خواهید کرد.

با موفقیت واکشی-1
اعلان "با موفقیت واکشی و فوروارد سریع از بالادست" در GitHub

چگونه تغییرات را بکشیم

اکنون که origin شما با مخزن upstream به روز شده است، زمان آن رسیده است که تغییرات را اعمال کنید و مخزن محلی خود را به روز کنید.

Pull راهی برای دریافت تغییرات جدید از راه دور به مخزن محلی است.

برای ایجاد تغییرات، مطمئن شوید که در شاخه کاری خود هستید. با اجرای git status می توانید این کار را انجام دهید:

git-status-branch
git status که نام یک شاخه را نشان می دهد

دستور git pull را اجرا کنید تا تغییرات را از شاخه main در مخزن origin بکشید:

 git pull origin main

اگر نیازی به حل تعارض ندارید، اکنون می توانید تغییرات خود را فشار دهید.

چگونه تضادهای ادغام را حل کنیم

پس از به روز رسانی مخزن محلی خود، ممکن است با تداخل هایی مواجه شوید که قبل از اینکه بتوانید تغییرات خود را اعمال کنید، باید آنها را برطرف کنید.

مواجهه با این تضادها در پروژه های منبع باز معمول است. تداخل ادغام معمولاً زمانی رخ می دهد که تغییراتی در یک خط(های) و فایل(ها) از دو شاخه مختلف وجود داشته باشد.

هنگامی که یک تضاد ایجاد می شود، گزینه هایی برای پذیرش تغییرات در بالای فضای کاری خود در VSCode خواهید دید. همچنین تغییر(های) دیگری متفاوت از تغییر خود خواهید دید - تغییر ورودی.

git-conflict
گزینه هایی برای پذیرش تغییر، تغییر فعلی و تغییر ورودی در VSCode

نحوه رفع تضادهای ادغام

هنگامی که می خواهید یک تضاد را حل کنید، می توانید از بین گزینه های مختلف انتخاب کنید:

پذیرش تغییر فعلی : زمانی که می‌خواهید فقط تغییرات خود را حفظ کنید.

پذیرش تغییر ورودی : زمانی که می خواهید فقط تغییرات ورودی را بپذیرید که مال شما نیستند.

Accept Both Changes : زمانی که می خواهید تغییرات خود و تغییرات دریافتی را بپذیرید.

شما همچنان می توانید در صورت لزوم پس از انتخاب اقدام مطلوب، موارد را اصلاح کنید.

پس از رفع تضادها، سپس می توانید تغییرات خود را به قسمت مرحله اضافه کنید و آنها را انجام دهید.

از آنجایی که شما تغییرات را در یک فایل موجود اضافه کرده و انجام می دهید، می توانید این دستور را برای انجام هر دو عمل به طور همزمان اجرا کنید:

 git commit -am "Your message"

چگونه تغییرات را تحت فشار قرار دهیم

اکنون زمان آن است که تغییرات خود را تحت فشار قرار دهید. این به معنای انتقال تغییرات از مخزن محلی به مخزن راه دور است.

شما همیشه می خواهید تغییرات خود را به مخزن origin فشار دهید. برای انجام این کار، این دستور را در ترمینال خود اجرا کنید:

 git push origin <branch-name>

این احتمال وجود دارد که این پیغام خطا را دریافت کنید:

no-upstream-branch-1
پیام git push "fatal: شاخه فعلی <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 هدایت شوید:

مقایسه-و-کشیدن-درخواست1
دکمه سبز Compare & pull request در GitHub

سپس فرم درخواست کشش را پر کنید. اگر یک الگوی درخواست کشش وجود دارد، تمام قسمت‌های مورد نیاز را تکمیل کنید تا به نگهبانان کمک کنید تغییرات شما را تحلیل کنند.

اگر الگوی درخواست کشش وجود ندارد، می توانید درخواست کشش را به صورت ساختاریافته بنویسید. هنگام نوشتن درخواست کشش خود به این نکته توجه کنید:

عنوانی کوتاه، واضح و آموزنده.

توضیح واضح تغییرات

لینک موضوع مرتبط به عنوان مثال، "Closes #456".

اسکرین شات یا ضبط صفحه در صورت لزوم.

در نهایت، روی دکمه سبز Create pull request در پایین کلیک کنید تا یک PR ایجاد شود.

ایجاد-کشیدن-درخواست-دکمه
Create pull request در GitHub

کلمات پایانی

مشارکت در پروژه‌های متن‌باز می‌تواند دلهره‌آور باشد و باعث شود در ابتدا احساس ترس کنید. اما مانند سایر مهارت ها، با تمرین مداوم، بهتر خواهید شد.

علاوه بر درک Git و GitHub، جنبه های غیر فنی منبع باز وجود دارد که شما نیز باید بدانید .

و به محض دستیابی، منبع باز می تواند بسیار سرگرم کننده باشد!

اگر این مقاله را دوست داشتید و لذت بردید، لطفا آن را با دیگران به اشتراک بگذارید. می توانید کارهای دیگر من را در وبلاگ من بیابید، و بیایید در X (توئیتر سابق) یا لینکدین وصل شویم!

ارسال نظر

دیدگاه‌ها بسته شده‌اند.


تبليغات ايهنا تبليغات ايهنا

تمامی حقوق مادی و معنوی این سایت متعلق به خبرکاو است و استفاده از مطالب با ذکر منبع بلامانع است