Pull Request — مشارکت در پروژه‌های دیگران

مسیر کامل مشارکت متن‌باز: Fork → Clone → شاخه → تغییرات → Push → Pull Request — از صفر تا merge.

Pull Request چیست؟

Pull Request (PR) یعنی: «من روی کد شما کار کردم؛ لطفاً تغییراتم را بکشید (pull) و ادغام کنید». PR قلب مشارکت در گیت‌هاب است — هم برای تیم‌های داخلی و هم برای پروژه‌های متن‌باز.

مسیر کامل مشارکت متن‌باز

سناریو: می‌خواهید یک باگ را در پروژه متن‌باز someone/awesome-project رفع کنید:

قدم ۱: Fork کنید

در گیت‌هاب، دکمه Fork را بزنید → your-username/awesome-project

قدم ۲: Clone کنید (از Fork خودتان!)

git clone git@github.com:your-username/awesome-project.git
cd awesome-project
git remote add upstream https://github.com/someone/awesome-project.git

قدم ۳: شاخه بسازید

# همیشه از آخرین main شروع کنید:
git switch main
git fetch upstream && git merge upstream/main

# شاخه با نام گویا:
git switch -c fix/navbar-mobile-bug
خیلی از پروژه‌های متن‌باز در فایل CONTRIBUTING.md قوانین مشارکت‌شان را نوشتهند — قبل از شروع حتماً بخوانید!

قدم ۴: تغییرات را انجام دهید و کامیت کنید

# ... رفع باگ ...
git add .
git commit -m "رفع نمایش نوار منو در موبایل"

قدم ۵: Push به Fork خودتان

git push -u origin fix/navbar-mobile-bug

قدم ۶: ساخت Pull Request

  1. وارد Fork خودتان در گیت‌هاب شوید
  2. بنر زرد Compare & pull request را بزنید (یا تب Pull Requests → New)
  3. مهم — مقصد درست را انتخاب کنید:
  • عنوان و توضیح بنویسید:
  • Create pull request!
  • قدم ۷: بازبینی و بحث

    نگهدارندگان (Maintainers) پروژه کد شما را بررسی می‌کنند:

    قدم ۸: Merge!

    اگر تأیید شد، نگهدارنده PR شما را merge می‌کند — نام شما برای همیشه در contributors پروژه ثبت می‌شود! 🎉

    الگوی خوب توضیح PR

    ## توضیح مشکل
    منوی نوار بالا در صفحات موبایل (زیر ۷۶۸px) نمایش داده نمی‌شود.
    
    Issue مرتبط: #123
    
    ## راه‌حل
    media query مربوطه در navbar.css اصلاح شد.
    
    ## تست
    - در Chrome و Firefox با عرض ۳۷۵px بررسی شد
    - تست واحد مربوطه اضافه شد

    نکات طلایی PR خوب

    1. کوچک بفرستید — PR کوچک سریع‌تر بازبینی و merge می‌شود
    2. یک PR یک کار — باگ و قابلیت جدید را قاطی نکنید
    3. توضیح کامل — بازبین ذهن شما را نمی‌تواند بخواند!
    4. از main به‌روز شروع کنید — تعارض کمتر
    5. محترمانه بحث کنید — نظر بازبین برای بهتر شدن کد شماست

    خلاصه

    این مبحث بخشی از دوره آموزش کامل Git است.

    ابزارهای مرتبط