Fork — کپی مخزن دیگران برای مشارکت

مفهوم Fork در گیت‌هاب، تفاوت آن با Clone و Star و اینکه چرا برای مشارکت در پروژه‌های متن‌باز ضروری است.

Fork چیست؟

Fork یعنی ساخت یک کپی کامل از مخزن دیگری زیر اکانت خودتان. مثلاً اگر پروژه‌ای به نام someone/awesome-project را Fork کنید، مخزنی به نام your-username/awesome-project در اکانت شما ساخته می‌شود — کاملاً مستقل اما متصل به نسخه اصلی.

چرا Fork لازم است؟

تصور کنید می‌خواهید در پروژه متن‌باز معروفی (مثل Vue یا Laravel) مشارکت کنید:

چطور Fork کنیم؟

بسیار ساده — فقط یک کلیک:

  1. وارد مخزن موردنظر شوید (مثلاً github.com/someone/awesome-project)
  2. روی دکمه Fork (بالا سمت راست، کنار Star) کلیک کنید
  3. چند ثانیه صبر کنید
  4. تمام! مخزن your-username/awesome-project ساخته شد 🎉

Fork با Clone چه فرقی دارد؟

ویژگیForkClone
چه می‌سازد؟مخزن جدید روی گیت‌هاب (زیر اکانت شما)کپی مخزن روی کامپیوتر شما
کجا انجام می‌شود؟در وب گیت‌هابدر ترمینال با git clone
اجازه push؟✅ به Fork خودتان بلهفقط اگر دسترسی داشته باشید
کاربرد اصلیمشارکت در پروژه دیگراندریافت کپی محلی برای کار
جریان معمول: Fork (در وب) → Clone (از Fork خودتان) → تغییرات → Push به Fork → Pull Request به اصلی

Fork با Star چه فرقی دارد؟

همگام ماندن Fork با مخزن اصلی

با گذشت زمان، مخزن اصلی جلو می‌رود و Fork شما عقب می‌ماند. دو راه همگام ماندن:

راه ۱: دکمه Sync fork (ساده‌ترین)

در صفحه Fork خودتان، اگر عقب باشید دکمه Sync fork نمایش داده می‌شود — کلیک کنید و تمام!

راه ۲: از ترمینال با ریموت upstream

# ۱. اضافه کردن مخزن اصلی به‌عنوان ریموت دوم:
git remote add upstream https://github.com/someone/awesome-project.git

# ۲. گرفتن تغییرات اصلی:
git fetch upstream

# ۳. ادغام در Fork محلی:
git switch main
git merge upstream/main

# ۴. ارسال به Fork خودتان:
git push origin main
قرارداد نام‌گذاری: origin = Fork خودتان، upstream = مخزن اصلی. این قرارداد در کل دنیای متن‌باز یکسان است.

خلاصه

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

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