مقدمه
در درس قبل، دیدیم که «برنچینگ» یا شاخهسازی، قلب جریان کاری گیتهاب است. برنچها به شما اجازه
میدهند تا بدون دستکاری کد اصلی، روی قابلیتهای جدید یا رفع باگها در یک محیط ایزوله کار کنید.
این قابلیت یکی از قدرتمندترین ویژگیهای گیت است که آن را از سایر سیستمهای کنترل نسخه متمایز
میکند.
در این درس، از مفاهیم تئوری فاصله گرفته و به صورت عملی با دستورات اصلی گیت برای ایجاد، مشاهده،
جابجایی و حذف برنچها آشنا خواهیم شد.
یک برنچ واقعاً چیست؟
برای درک بهتر دستورات، بیایید یک بار دیگر تعریف فنی برنچ را مرور کنیم. یک برنچ در گیت، چیزی
بیشتر از یک اشارهگر سبک و متحرک به یک کامیت نیست. وقتی شما یک برنچ جدید
میسازید، فقط یک فایل کوچک جدید ایجاد میکنید که حاوی هش ۴۰ کاراکتری کامیتی است که به آن اشاره
دارد. به همین دلیل است که ساختن و حذف کردن برنچ در گیت فوقالعاده سریع و کمهزینه است.
ایجاد، لیست کردن و جابجایی بین برنچها
برای کار با برنچها در گیت، سه دستور اصلی وجود دارد:
ایجاد یک برنچ جدید
رایجترین و کارآمدترین راه برای ایجاد یک برنچ جدید و شروع کار روی آن، استفاده از دستور git
checkout -b است. آپشن -b به دستور checkout میگوید
که ابتدا یک برنچ جدید
با نام مشخصشده بسازد و سپس بلافاصله به آن سوئیچ کند.
git checkout -b feature/new-design
این دستور معادل اجرای دو دستور زیر به صورت متوالی است:
git branch feature/new-design
git checkout feature/new-design
لیست کردن برنچها
برای مشاهده تمام برنچهای محلی خود، کافیست دستور git branch را بدون هیچ آرگومانی اجرا
کنید. برنچی که در حال حاضر روی آن قرار دارید، با یک علامت ستاره (*) مشخص میشود.
git branch
main
* feature/new-design
hotfix/login-issue
جابجایی بین برنچها
برای جابجایی به یک برنچ موجود، از دستور git checkout به همراه نام آن برنچ استفاده کنید.
git checkout main
نکته: در نسخههای جدیدتر گیت، دستور git switch نیز برای جابجایی بین
برنچها معرفی شده که خوانایی بیشتری دارد (git switch main). هر دو دستور کار یکسانی را
انجام میدهند.
ادغام و حذف برنچها
ادغام و حذف برنچها دو مرحله مهم در مدیریت پروژههای گیت هستند. پس از تکمیل توسعه یا رفع باگ در
یک برنچ، معمولاً آن را با برنچ اصلی ادغام میکنیم تا تغییرات وارد جریان اصلی پروژه شوند. سپس
برای جلوگیری از شلوغی و سردرگمی، برنچهای اضافی را حذف میکنیم. این کار باعث میشود تاریخچه
پروژه تمیز و قابل پیگیری باقی بماند.
ادغام برنچها (Merging)
پس از اینکه کار شما روی یک برنچ تمام شد، باید تغییرات آن را به برنچ اصلی (مثلاً main)
منتقل کنید. این فرآیند «ادغام» یا Merge نام دارد. برای این کار، ابتدا باید به برنچ مقصد
(برنچی که میخواهید تغییرات را به آن وارد کنید) بروید و سپس دستور git
merge را اجرا کنید.
git checkout main
git merge feature/new-design
توجه: همانطور که در درس قبل اشاره شد، در جریان کاری گیتهاب، این عمل ادغام
تقریباً همیشه از طریق رابط کاربری وب و با کلیک روی دکمه Merge در یک Pull Request
انجام میشود، نه مستقیماً در خط فرمان. اما دانستن این دستور برای درک اتفاقات پشت صحنه مفید است.
حذف یک برنچ
پس از اینکه یک برنچ با موفقیت ادغام شد، دیگر به آن نیازی نیست و برای تمیز نگه داشتن مخزن، بهتر
است حذف شود. برای حذف یک برنچ محلی، از آپشن -d (مخفف --delete) استفاده کنید.
git branch -d feature/new-design
گیت به عنوان یک اقدام امنیتی، تنها در صورتی به شما اجازه حذف برنچ با -d را میدهد که
تغییرات آن قبلاً در برنچ دیگری ادغام شده باشد. اگر بخواهید یک برنچ را که هنوز ادغام نشده (مثلاً
یک آزمایش ناموفق بوده) حذف کنید، باید از آپشن -D (حرف بزرگ) استفاده
کنید که این کار را به
صورت اجباری انجام میدهد.
حذف یک برنچ از روی سرور ریموت (origin) نیز با دستور زیر انجام میشود:
git push origin --delete feature/new-design