Gitبرنامه نویسی Programming

کار با مخازن راه‌دور در GitHub؛ شروع همکاری تیمی

Chapter 10: Explore Remote Repositories with GitHub

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

مخزن راه‌دور (Remote Repository) چیست؟

  • Remote در Git به یک نسخه از مخزن شما اشاره دارد که روی سرور دیگری (مثلاً GitHub) قرار دارد.
  • این ریموت‌ها به شما امکان می‌دهند:
    • تغییرات خود را روی اینترنت منتشر کنید.
    • تغییرات دیگران را دریافت کنید.
    • پروژه‌های متن‌باز را Fork و توسعه دهید.

معرفی GitHub

GitHub 1
Screenshot

GitHub محبوب‌ترین پلتفرم میزبانی Git است که میلیون‌ها توسعه‌دهنده و پروژه‌ی متن‌باز در آن حضور دارند.
امکانات GitHub:

  • ذخیره و اشتراک‌گذاری کد.
  • Pull Request برای همکاری تیمی.
  • مدیریت Issues و Bug Tracking.
  • Wiki و مستندات پروژه.
  • CI/CD و ابزارهای DevOps.

اتصال مخزن محلی به GitHub

github
github

1. ساخت یک Repository در GitHub

  1. وارد حساب GitHub شوید.
  2. روی New Repository کلیک کنید.
  3. نام پروژه و تنظیمات را وارد کنید.
  4. مخزن جدید خالی (بدون 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

  1. همیشه قبل از شروع کار، پروژه را با git pull به‌روز کنید.
  2. برای هر ویژگی یا باگ جدید، یک شاخه جداگانه بسازید.
  3. تغییرات خود را به‌صورت Commitهای کوچک و شفاف ثبت کنید.
  4. از Pull Request برای بررسی کد و جلوگیری از Conflict استفاده کنید.
  5. پیام Commitها را واضح و استاندارد بنویسید.

جمع‌بندی

  • مخزن راه‌دور (Remote) نسخه‌ای از پروژه روی اینترنت است.
  • GitHub یکی از بهترین سرویس‌ها برای میزبانی و همکاری تیمی است.
  • با دستوراتی مثل git remote add, git push, git pull می‌توانید پروژه خود را به GitHub متصل کنید.
  • Pull Request و Fork ابزارهای اصلی همکاری در پروژه‌های متن‌باز هستند.
Git vs GitHub
Git vs GitHub

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 منتشر کنید و با دیگر توسعه‌دهندگان در سراسر دنیا همکاری کنید.

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا