Fork — کپی مخزن دیگران برای مشارکت
مفهوم Fork در گیتهاب، تفاوت آن با Clone و Star و اینکه چرا برای مشارکت در پروژههای متنباز ضروری است.
Fork چیست؟
Fork یعنی ساخت یک کپی کامل از مخزن دیگری زیر اکانت خودتان. مثلاً اگر پروژهای به نام someone/awesome-project را Fork کنید، مخزنی به نام your-username/awesome-project در اکانت شما ساخته میشود — کاملاً مستقل اما متصل به نسخه اصلی.
چرا Fork لازم است؟
تصور کنید میخواهید در پروژه متنباز معروفی (مثل Vue یا Laravel) مشارکت کنید:
- ❌ شما اجازه push به مخزن اصلی را ندارید (وگرنه هر کسی میتوانست هر چیزی خراب کند!)
- ✅ پس اول Fork میکنید — کپی خودتان که کاملاً در اختیار شماست
- ✅ تغییرات را در Fork خودتان انجام میدهید
- ✅ و با Pull Request به مخزن اصلی پیشنهاد میدهید
چطور Fork کنیم؟
بسیار ساده — فقط یک کلیک:
- وارد مخزن موردنظر شوید (مثلاً
github.com/someone/awesome-project) - روی دکمه Fork (بالا سمت راست، کنار Star) کلیک کنید
- چند ثانیه صبر کنید
- تمام! مخزن
your-username/awesome-projectساخته شد 🎉
Fork با Clone چه فرقی دارد؟
| ویژگی | Fork | Clone |
|---|---|---|
| چه میسازد؟ | مخزن جدید روی گیتهاب (زیر اکانت شما) | کپی مخزن روی کامپیوتر شما |
| کجا انجام میشود؟ | در وب گیتهاب | در ترمینال با git clone |
| اجازه push؟ | ✅ به Fork خودتان بله | فقط اگر دسترسی داشته باشید |
| کاربرد اصلی | مشارکت در پروژه دیگران | دریافت کپی محلی برای کار |
جریان معمول: Fork (در وب) → Clone (از Fork خودتان) → تغییرات → Push به Fork → Pull Request به اصلی
Fork با Star چه فرقی دارد؟
- Star ⭐: فقط نشانگذاری («پسندیدم») — هیچ کپیای ساخته نمیشود
- Fork 🍴: کپی واقعی زیر اکانت شما
همگام ماندن 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 = مخزن اصلی. این قرارداد در کل دنیای متنباز یکسان است.خلاصه
- Fork = کپی مخزن دیگران زیر اکانت شما (در وب)
- برای مشارکت در پروژههایی که به آنها push دسترسی ندارید
- Clone = کپی روی کامپیوتر؛ Star = فقط پسندیدن
- با
upstreamریموت، Fork خود را همگام نگه دارید
این مبحث بخشی از دوره آموزش کامل Git است.