کار با مخازن راهدور در GitHub؛ شروع همکاری تیمی
Chapter 10: Explore Remote Repositories with GitHub

تا اینجا یاد گرفتیم Git چگونه کار میکند و چطور میتوانیم تغییرات خود را بهصورت محلی (Local) مدیریت کنیم. اما نرمافزارهای واقعی معمولاً کار یک نفر نیستند. باید بتوانیم کد را روی اینترنت منتشر کنیم، با دیگران به اشتراک بگذاریم و امکان همکاری تیمی را فراهم کنیم. اینجاست که Remote Repositories و مخصوصاً GitHub وارد بازی میشوند.
مخزن راهدور (Remote Repository) چیست؟
- Remote در Git به یک نسخه از مخزن شما اشاره دارد که روی سرور دیگری (مثلاً GitHub) قرار دارد.
- این ریموتها به شما امکان میدهند:
- تغییرات خود را روی اینترنت منتشر کنید.
- تغییرات دیگران را دریافت کنید.
- پروژههای متنباز را Fork و توسعه دهید.
معرفی GitHub

GitHub محبوبترین پلتفرم میزبانی Git است که میلیونها توسعهدهنده و پروژهی متنباز در آن حضور دارند.
امکانات GitHub:
- ذخیره و اشتراکگذاری کد.
- Pull Request برای همکاری تیمی.
- مدیریت Issues و Bug Tracking.
- Wiki و مستندات پروژه.
- CI/CD و ابزارهای DevOps.
اتصال مخزن محلی به GitHub

1. ساخت یک Repository در GitHub
- وارد حساب GitHub شوید.
- روی New Repository کلیک کنید.
- نام پروژه و تنظیمات را وارد کنید.
- مخزن جدید خالی (بدون README) بسازید.
2. اضافه کردن Remote به پروژه محلی
در پوشه پروژه محلی خود:
git remote add origin https://github.com/username/my-repo.git
📌 origin
نام پیشفرض Remote است.
3. ارسال Commitها به GitHub
git push -u origin main
- گزینه
-u
باعث میشود شاخه محلی به ریموت متصل شود. - از این به بعد میتوانید فقط بنویسید:
git push
دریافت تغییرات از GitHub
1. گرفتن تغییرات (Fetch)
git fetch origin
2. گرفتن و ادغام همزمان (Pull)
git pull origin main
git pull
معادل fetch + merge
است.
همکاری با دیگران در GitHub
1. Fork و Clone
اگر پروژهای متعلق به شما نیست:
- ابتدا آن را Fork کنید (یک کپی در حساب شما ساخته میشود).
- سپس آن را Clone کنید:
git clone https://github.com/username/forked-repo.git
2. ایجاد تغییرات در شاخه جدید
git checkout -b feature-improvement
3. Push تغییرات و ارسال Pull Request
بعد از Push به مخزن خودتان، میتوانید در GitHub یک Pull Request (PR) ایجاد کنید تا تغییراتتان به پروژه اصلی پیشنهاد شود.
بررسی لیست Remoteها
برای مشاهده Remoteهای متصل به پروژه:
git remote -v
خروجی:
origin https://github.com/username/my-repo.git (fetch)
origin https://github.com/username/my-repo.git (push)
بهترین شیوهها در کار با GitHub
- همیشه قبل از شروع کار، پروژه را با
git pull
بهروز کنید. - برای هر ویژگی یا باگ جدید، یک شاخه جداگانه بسازید.
- تغییرات خود را بهصورت Commitهای کوچک و شفاف ثبت کنید.
- از Pull Request برای بررسی کد و جلوگیری از Conflict استفاده کنید.
- پیام Commitها را واضح و استاندارد بنویسید.
جمعبندی
- مخزن راهدور (Remote) نسخهای از پروژه روی اینترنت است.
- GitHub یکی از بهترین سرویسها برای میزبانی و همکاری تیمی است.
- با دستوراتی مثل
git remote add
,git push
,git pull
میتوانید پروژه خود را به GitHub متصل کنید. - Pull Request و Fork ابزارهای اصلی همکاری در پروژههای متنباز هستند.

Git Cheat Sheet (جدول خلاصه دستورات مهم)
تنظیمات اولیه
دستور | توضیح |
---|---|
git config --global user.name "Your Name" |
تنظیم نام کاربری |
git config --global user.email "you@example.com" |
تنظیم ایمیل کاربری |
git config --list |
نمایش تنظیمات فعلی |
شروع کار با مخزن
دستور | توضیح |
---|---|
git init |
ساخت مخزن جدید در پوشه فعلی |
git clone <url> |
کلون کردن مخزن از راه دور |
git remote -v |
نمایش ریموتهای متصل |
git remote add origin <url> |
اضافه کردن ریموت جدید |
مدیریت فایلها
دستور | توضیح |
---|---|
git status |
نمایش وضعیت فایلها |
git add <file> |
اضافه کردن فایل به Stage |
git add . |
اضافه کردن همه تغییرات به Stage |
git reset <file> |
خارج کردن فایل از Stage |
git rm <file> |
حذف فایل و ثبت در Git |
Commit
دستور | توضیح |
---|---|
git commit -m "Message" |
ایجاد یک Commit با پیام |
git commit -am "Message" |
Stage و Commit کردن فایلهای تغییر کرده (بهجز فایلهای جدید) |
git log |
نمایش تاریخچه Commits |
git log --oneline --graph --decorate |
نمایش خلاصه تاریخچه بهصورت گرافیکی |
شاخهها (Branches)
دستور | توضیح |
---|---|
git branch |
نمایش لیست Branchها |
git branch <name> |
ساخت Branch جدید |
git checkout <name> |
تغییر به Branch دیگر |
git checkout -b <name> |
ساخت و تغییر به Branch جدید |
git merge <branch> |
ادغام Branch با Branch فعلی |
git branch -d <name> |
حذف Branch محلی |
بهروزرسانی و همگامسازی
دستور | توضیح |
---|---|
git fetch |
دریافت تغییرات از ریموت بدون Merge |
git pull |
دریافت و ادغام تغییرات از ریموت |
git push |
ارسال Commitها به ریموت |
git push -u origin <branch> |
Push شاخه جدید و ست کردن upstream |
تغییرات و بازگردانی
دستور | توضیح |
---|---|
git diff |
نمایش تغییرات فایلها |
git diff --staged |
نمایش تغییرات فایلهای Stage شده |
git checkout -- <file> |
بازگردانی فایل به آخرین نسخه Commit شده |
git reset --hard HEAD |
بازگردانی کل پروژه به آخرین Commit |
git revert <commit> |
ساخت Commit معکوس برای یک Commit مشخص |
تمیزکاری
دستور | توضیح |
---|---|
git stash |
ذخیره موقت تغییرات بدون Commit |
git stash pop |
بازیابی تغییرات ذخیرهشده |
git stash list |
لیست تغییرات Stash شده |
git clean -fd |
حذف فایلها و پوشههای غیر-Tracked |
تگها (Tags)
دستور | توضیح |
---|---|
git tag |
نمایش لیست Tagها |
git tag <name> |
ساخت Tag جدید |
git push origin <tag> |
ارسال Tag به ریموت |
حالا شما علاوه بر کار محلی با Git، میتوانید پروژههای خود را در GitHub منتشر کنید و با دیگر توسعهدهندگان در سراسر دنیا همکاری کنید.