Git Branch | شاخه ها در گیت
📖توضیحات درس
📄جزوه
مفاهیم کلیدی
- Branch
یک فضای کاری (Workspace) جداگانه که به شما اجازه میدهد در یک «جهان موازی» نسبت به کد اصلی کار کنید. تغییرات در یک Branch هیچ تأثیری بر شاخههای دیگر ندارد. - Main/Master Branch
شاخه اصلی پروژه که کد پایدار و نهایی در آن نگهداری میشود. معمولاً این شاخه محافظت شده (Protected) است تا تغییرات تصادفی باعث خرابی پروژه نشود. - Checkout
عملیات سوییچ کردن یا جابهجایی بین شاخههای مختلف. با این کار، محتویات فایلهای پروژه در سیستم شما به وضعیت آن شاخه خاص تغییر میکند.
نکات مهم مصاحبهای
-
چرا باید از Branch استفاده کنیم؟
برای ایزوله کردن تغییرات؛ تا بتوانیم روی ویژگیهای جدید (Feature)، رفع باگها (Bug fix) یا تست ایدههای جدید کار کنیم بدون اینکه پایداری کد اصلی (Main) به خطر بیفتد. -
تفاوت دستور
git branch -dباgit branch -Dچیست؟
دستور-dشاخه را به صورت ایمن حذف میکند (اگر تغییرات آن در شاخه اصلی مرج شده باشد). اما-D(بزرگ) حذف اجباری است و حتی اگر تغییرات مرج نشده باشند، شاخه را پاک میکند. -
چگونه متوجه شویم در حال حاضر روی کدام شاخه هستیم؟
با اجرای دستورgit branchلیستی از شاخهها نمایش داده میشود که شاخه فعلی با علامت ستاره (*) و معمولاً رنگ متفاوت متمایز شده است. -
چگونه نام یک شاخه را تغییر دهیم؟
با استفاده از دستورgit branch -m <old_name> <new_name>میتوان نام یک شاخه موجود را اصلاح کرد.
مثال یا سناریوی کاربردی
فرض کنید در حال توسعه یک پروژه Java هستید و میخواهید یک قابلیت جدید اضافه کنید، اما نگران هستید که کد اصلی خراب شود:
- ایجاد شاخه جدید: ابتدا یک شاخه به نام ویژگی جدید میسازید:
git branch new-feature - ورود به شاخه: به آن شاخه سوییچ میکنید:
git checkout new-feature - توسعه و خطا: در این شاخه کدهایی میزنید که باعث ایجاد Error منطقی یا خرابی پروژه میشود.
- بازگشت امن: کافی است به شاخه اصلی برگردید تا کدها به حالت سالم قبلی برگردند:
git checkout master - پاکسازی: اگر به این نتیجه رسیدید که ایده جدید کلاً اشتباه بوده، شاخه معیوب را حذف میکنید:
git branch -D new-feature
بیشتر بدانید
-
نامگذاری استاندارد: بهتر است نام شاخهها توصیفی باشد؛ مثلاً برای ویژگیهای جدید از پیشوند
feature/و برای رفع باگ ازbugfix/استفاده کنید (مانندfeature/login-page). -
نظم ریپازیتوری: همیشه پس از اتمام کار و مرج کردن، شاخههای اضافی را پاک کنید تا لیست شاخهها شلوغ و گیجکننده نشود.
-
پیشنیاز ایجاد شاخه: تا زمانی که حداقل یک
commitدر پروژه نداشته باشید، نمیتوانید شاخه جدیدی ایجاد کنید. -
نکته IDE: در محیطهایی مانند IntelliJ، نام شاخه فعلی معمولاً در گوشه پایین سمت راست محیط کدنویسی نمایش داده میشود که جابهجایی بین آنها را سریعتر میکند.
