درخواست‌های تغییر (Pull Requests)

درخواست تغییر (PR) روشی برای پیشنهاد تغییرات به مخزن است. به شما اجازه می‌دهد دیگران را از تغییراتی که push کرده‌اید مطلع کنید و قبل از merge درخواست بررسی کنید.

گردش کار

۱. ایجاد Branch

git checkout -b feature/my-new-feature

۲. ایجاد تغییرات

کد خود را ویرایش و commit کنید:

git add .
git commit -m "افزودن ویژگی جدید"
git push origin feature/my-new-feature

۳. باز کردن درخواست تغییر

  1. به مخزن بروید
  2. روی "درخواست‌های تغییر""درخواست تغییر جدید" کلیک کنید
  3. انتخاب کنید:
    • Branch پایه: Branch که می‌خواهید merge شود (مثل main)
    • Branch مقایسه: Branch ویژگی شما (مثل feature/my-new-feature)
  4. پر کنید:
    • عنوان: عنوان واضح و توصیفی
    • توضیحات: چه چیزی و چرا تغییر می‌دهید
  5. روی "ایجاد درخواست تغییر" کلیک کنید

ویژگی‌های درخواست تغییر

بررسی کد

بررسی‌کنندگان می‌توانند:

  • Diff ها را ببینند: تمام تغییرات را مشاهده کنند
  • کامنت بگذارند: کامنت‌های عمومی یا درون‌خطی بگذارند
  • درخواست تغییر کنند: درخواست اصلاحات کنند
  • تأیید کنند: تغییرات را بپذیرند

مکالمه

  • درباره تغییرات پیشنهادی بحث کنید
  • سوال بپرسید
  • بازخورد ارائه دهید
  • اعضای تیم را با @username منشن کنید

بررسی‌ها

  • وضعیت CI/CD را مشاهده کنید
  • تداخل‌های merge را بررسی کنید
  • تاریخچه commit را ببینید

گزینه‌های Merge

  • Merge: ترکیب commit ها
  • Squash و Merge: ترکیب تمام commit ها در یکی
  • Rebase و Merge: Rebase commit ها روی branch پایه

بهترین شیوه‌ها

برای نویسندگان

  • ✅ PR ها را کوچک و متمرکز نگه دارید
  • ✅ توضیحات واضح بنویسید
  • ✅ برای تغییرات UI اسکرین‌شات اضافه کنید
  • ✅ مسائل مرتبط را لینک کنید
  • ✅ به بازخورد بررسی پاسخ دهید
  • ✅ در صورت نیاز branch خود را به‌روز کنید

برای بررسی‌کنندگان

  • ✅ سریع بررسی کنید
  • ✅ سازنده و محترمانه باشید
  • ✅ در صورت نیاز تغییرات را محلی تست کنید
  • ✅ برای کد خاص از کامنت‌های درون‌خطی استفاده کنید
  • ✅ وقتی راضی هستید تأیید کنید
  • ✅ وقتی لازم است درخواست تغییر کنید

حل تداخل‌ها

اگر تداخل merge وجود دارد:

# دریافت آخرین تغییرات
git fetch origin

# Rebase branch خود
git rebase origin/main

# حل تداخل‌ها به صورت دستی
# ویرایش فایل‌های تداخلی

# ادامه rebase
git add .
git rebase --continue

# Push تغییرات
git push origin feature/my-new-feature --force

مدیریت درخواست‌های تغییر

برچسب‌ها

از برچسب‌ها برای دسته‌بندی PR ها استفاده کنید:

  • bugfix - رفع یک باگ
  • enhancement - ویژگی جدید
  • documentation - به‌روزرسانی مستندات
  • breaking - تغییرات شکست‌نده
  • wip - در حال انجام

نقاط عطف

PR ها را با مایلستون‌های پروژه مرتبط کنید برای ردیابی پیشرفت.

تخصیص‌دهندگان

بررسی‌کنندگان و افراد مسئول را تخصیص دهید.

مراحل بعدی