کار تیمی با Git و GitHub
مفهوم
Git یک سیستم کنترل نسخه (Version Control System) است: تاریخچهی کامل تغییرات کد را نگه میدارد، امکان بازگشت و مقایسهی نسخهها را میدهد و — مهمتر از همه — همکاری چند نفر روی یک کدبیس را ممکن میکند. مفاهیم پایه:
- Repository (ریپو) — پروژه بههمراه کل تاریخچهاش
- Commit — یک واحد تغییر ثبتشده با پیام توضیحی
- Branch (شاخه) — یک خط کار جدا از نسخهی اصلی برای تغییرات جدید
- Merge — ترکیب تغییرات یک شاخه با شاخههای دیگر. Conflictها همینجا حل میشوند
GitHub Flow
GitHub سرویس میزبانی ریپوهای Git و بستر همکاری تیمی است: Pull Request برای پیشنهاد و بازبینی تغییرات، Issue برای پیگیری کارها و صدها ابزار دیگر. گردش کار مورد نیاز ما معمولاً به همین سادگی است:
- از branchی اصلی یک branchی جدید برای کارتان بسازید
- تغییرات را با commitهای کوچک و واضح ثبت کنید
- شاخه را push و یک Pull Request باز کنید
- منتور review میکند؛ اصلاح میکنید؛ بعد merge میشود
این الگو در مستندات GitHub با نام GitHub Flow مستند شده است.
پیامهای Conventional Commit
پیام commit باید کوتاه و مشخص بگوید چه تغییری انجام شده است. در این دوره از قالب Conventional Commits استفاده میکنیم:
type نوع تغییر است؛ از feat برای قابلیت جدید، fix برای رفع باگ و docs برای تغییر مستندات استفاده کنید. scope اختیاری است و بخش مرتبط پروژه را مشخص میکند. مثالها:
راهاندازی
نصب Git
Windows:
از git-scm.com دانلود کنید یا با Windows Package Manager:
Linux (Debian/Ubuntu):
Linux (RHEL/Fedora/CentOS):
macOS:
تنظیمات اولیه
حساب GitHub و Personal Access Token (PAT)
برای اتصال به GitHub از HTTPS و Personal Access Token (PAT) استفاده میکنیم. GitHub دیگر رمز عبور حساب را برای عملیات Git از طریق HTTPS قبول نمیکند.
در GitHub به Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token بروید. برای ریپوی تمرین، دسترسی آن را فقط به ریپوی موردنظر محدود کنید و در بخش Repository permissions این مجوزها را بدهید:
- Contents: Read and write — برای clone، pull و push کردن کد
- Workflows: Read and Write — برای افزودن و ویرایش فایلهای
.github/workflows/در آینده
سپس ریپوی مدنظر را با آدرس HTTPS clone کنید:
هنگام نخستین git push، نام کاربری GitHub خود را وارد کنید و در کادر password، PAT را paste کنید. هرگز توکن را داخل فایلهای پروژه، commitها یا چت عمومی قرار ندهید.
راهنمای کامل: Managing your personal access tokens و Caching your GitHub credentials.
منابع یادگیری
مستندات و مقالات
- Pro Git Book — کتاب مرجع Git؛ فصلهای ۱ تا ۳ برای این هفته کافیاند
- Pro Git — ترجمه فارسی — همان کتاب به فارسی؛ برای شروع سریعتر مفید است
- Git Tutorials — Atlassian — آموزش گامبهگام مفاهیم Git با تصویر
- Hello World — GitHub Docs — اولین تمرین عملی با ریپو، شاخه و PR
- GitHub Flow — GitHub Docs — الگوی کار تیمی که در این دوره استفاده میکنیم
- Conventional Commits — قرارداد استاندارد برای نوشتن پیامهای commit
- Oh Shit, Git!?! — راهحل موقعیتهای «وای چه غلطی کردم!»؛ مرجع نجاتبخش
ویدیو
- آموزش گیت Git، گیت هاب و گیت لب - جادی/فرادرس — دورهی کامل برای شروع
- Git and GitHub for Beginners — freeCodeCamp — دورهی کامل برای شروع