مقدمه

در درس قبل، دیدیم که «برنچینگ» یا شاخه‌سازی، قلب جریان کاری گیت‌هاب است. برنچ‌ها به شما اجازه می‌دهند تا بدون دستکاری کد اصلی، روی قابلیت‌های جدید یا رفع باگ‌ها در یک محیط ایزوله کار کنید. این قابلیت یکی از قدرتمندترین ویژگی‌های گیت است که آن را از سایر سیستم‌های کنترل نسخه متمایز می‌کند.

در این درس، از مفاهیم تئوری فاصله گرفته و به صورت عملی با دستورات اصلی گیت برای ایجاد، مشاهده، جابجایی و حذف برنچ‌ها آشنا خواهیم شد.

یک برنچ واقعاً چیست؟

برای درک بهتر دستورات، بیایید یک بار دیگر تعریف فنی برنچ را مرور کنیم. یک برنچ در گیت، چیزی بیشتر از یک اشاره‌گر سبک و متحرک به یک کامیت نیست. وقتی شما یک برنچ جدید می‌سازید، فقط یک فایل کوچک جدید ایجاد می‌کنید که حاوی هش ۴۰ کاراکتری کامیتی است که به آن اشاره دارد. به همین دلیل است که ساختن و حذف کردن برنچ در گیت فوق‌العاده سریع و کم‌هزینه است.

ایجاد، لیست کردن و جابجایی بین برنچ‌ها

برای کار با برنچ‌ها در گیت، سه دستور اصلی وجود دارد:

ایجاد یک برنچ جدید

رایج‌ترین و کارآمدترین راه برای ایجاد یک برنچ جدید و شروع کار روی آن، استفاده از دستور 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