دلایل مختلفی وجود دارد که چرا ممکن است یک شعبه را در GitHub حذف کنید. خوشبختانه، حذف یک شاخه Git آسان است.
تعاریف کلیدی
- حذف شاخه ها بخش مهمی از یک گردش کاری معمولی Git است.
- شما می توانید یک شاخه محلی را با استفاده از دستور “git branch -d [branchname] حذف کنید، اما مراقب تغییرات ادغام نشده باشید.
- ابزارهای مختلفی مانند GitHub Desktop، GitKraken، Tower و Bitbucket روش های خاص خود را برای حذف شاخه ها دارند، بنابراین خود را با فرآیند خاص هر ابزار آشنا کنید.
شاخه های Git به قدری سبک هستند که هر زمان که نیاز داشته باشید می توانید آنها را ایجاد کنید. اما به راحتی می توان با شاخه های باقی مانده ای که دیگر به آن ها نیاز ندارید، دست یافت. بنابراین حذف یک شعبه چه چیزی را شامل می شود؟
چرا یک شعبه را حذف کنیم؟
ابتدا، اگر هنوز در حال یادگیری نحوه ساخت یک پروژه با استفاده از شاخه های git هستید، شانس بسیار خوبی وجود دارد که یک شاخه ایجاد کنید و سپس تصمیم بگیرید که نیازی به این کار ندارید. این خوب است زیرا انشعاب یک عملیات سبک وزن است. بسیار سریع است و از فضای دیسک به طور موثر استفاده می کند.
در نتیجه، بسیاری از گردشهای کاری توسعه git، انشعاب را تشویق میکنند، حتی برای کارهای بسیار کوچک یا کوتاه. به عنوان مثال، یک استراتژی متداول این است که یک شاخه جداگانه برای هر رفع اشکال ایجاد کنید.
حذف شاخه ها باید به همان اندازه که ایجاد آنها بخشی از جریان کاری روزمره شما باشد.
مخزن نمونه با شعبه
مثال های زیر به یک مخزن نمونه با ساختار زیر اشاره دارد:
توجه داشته باشید که مخزن دارای دو شاخه اصلی و توسعه است. هر یک از این شاخه های محلی یک شعبه ردیابی هستند، با یک شاخه بالادستی مربوطه در یک سرور راه دور (منبع).
از دست دادن ردیابی شاخه ها آسان است، بنابراین مطمئن شوید که چگونه شاخه های git را از خط فرمان فهرست کنید یا آنها را در کلاینت دلخواه خود مشاهده کنید.
حذف یک شعبه با استفاده از خط فرمان
دستور اصلی برای حذف یک شاخه به صورت زیر است:
git branch (-d | -D) [-r] <branchname>...
چگونه یک شعبه محلی را حذف کنیم
سادهترین شکل دستور، یک شاخه محلی را حذف میکند، به شرطی که تمام تغییرات آن ادغام شده باشد:
git branch -d dev
وقتی همه چیز درست شد، یک پیام تأیید خواهید دید:
شما نمی توانید شاخه ای را که در حال حاضر فعال است حذف کنید. اگر سعی کنید این کار را انجام دهید، پیامی مانند این دریافت خواهید کرد:
اگر یک شعبه محلی را با تغییرات ادغام نشده و بدون فشار حذف کنید، این تغییرات را از دست خواهید داد. بنابراین، git به طور پیش فرض از حذف چنین شاخه ای خودداری می کند. در این مثال، dev تغییراتی را که به شاخه راه دور منتقل نشده اند، از هم ادغام کرده است:
همانطور که پیام خطا می گوید، می توانید با پرچم -D حذف را مجبور کنید.
اگر شعبه راه دور مربوطه به روز باشد، حتی اگر ادغام نشده باشد، می توانید یک شاخه ردیابی محلی را حذف کنید. Git همچنان یک اخطار نشان میدهد، بنابراین از اتفاقی که افتاده آگاه هستید:
چگونه یک شعبه از راه دور را حذف کنیم
حذف یک شاخه از راه دور کاملاً متفاوت است. از دستور git push به همراه پرچم -d برای حذف استفاده خواهید کرد. پس از آن، نام کنترل از راه دور (اغلب مبدا) و نام شعبه را وارد کنید:
حذف شعبه های محلی و راه دور با دسکتاپ GitHub
برخلاف برنامه git خط فرمان، برنامه دسکتاپ GitHub فقط به شما اجازه می دهد شاخه فعال را حذف کنید. این عمل را می توانید از طریق منوی Branch با انتخاب گزینه Delete و تایید آن انجام دهید:
دسکتاپ GitHub به شما اجازه نمی دهد شعبه پیش فرض را حذف کنید – به عنوان مثال. main—اگرچه خود git این را پشتیبانی می کند. اگر شاخه پیشفرض شاخهای است که در حال حاضر فعال است، برنامه عملکرد منو را غیرفعال میکند.
اگر شعبه یک شاخه راه دور را نیز نشان دهد، GitHub Desktop این گزینه را می دهد که آن را از کنترل از راه دور نیز حذف کند:
حذف شاخه ها با استفاده از GitKraken
GitKraken شاخه های محلی و راه دور مخزن شما را در نوار کناری سمت چپ نمایش می دهد. شما باید هر کدام را جداگانه حذف کنید.
ماوس را روی نام شاخه مناسب نگه دارید و روی منوی اقدامات شعبه کلیک کنید که شبیه سه نقطه عمودی است. از منو، Delete
یک پیام تأیید می بینید که به شما اطلاع می دهد که این یک عملیات مخرب است. میتوانید با دکمه Delete تأیید کنید که میخواهید ادامه دهید:
با انعکاس رفتار پیشفرض برنامه خط فرمان git، ابتدا باید به شعبهای غیر از شاخهای که در حال حذف آن هستید بروید. در غیر این صورت، یک پیغام خطا مشاهده خواهید کرد:
حذف شعبه های محلی و راه دور با استفاده از Tower
حذف شعبه با Tower بسیار شبیه به حذف شاخه با GitKraken است. این برنامه شاخه های محلی و راه دور را در یک پانل در سمت چپ نمایش می دهد. روی هر شاخه کلیک راست کرده و گزینه Delete را از منوی زمینه انتخاب کنید:
یک تفاوت کلیدی این است که می توانید یک شعبه راه دور را به همراه شعبه محلی آن در حین تأیید حذف کنید:
حذف یک شعبه در GitHub
GitHub فقط به عنوان یک منبع راه دور عمل می کند، بنابراین شاخه های آنجا به طور پیش فرض از راه دور هستند. اگر شعبهای را با استفاده از وبسایت GitHub حذف کنید، باید شعبه محلی مربوطه را با استفاده از یکی از روشهای دیگر در اینجا حذف کنید.
همانند برنامه دسکتاپ GitHub، وب سایت GitHub به شما اجازه حذف شعبه پیش فرض را نمی دهد. اگر امتحان کنید، یک پیغام خطایی خواهید دید:
با این حال، حذف هر شاخه دیگری ساده است. از صفحه کد مخزن، روی پیوند شاخه ها کلیک کنید، شعبه مورد نظر را برای حذف پیدا کنید، سپس روی نماد حذف شاخه کلیک کنید، که شبیه سطل زباله است:
توجه داشته باشید که هیچ بررسی برای تغییرات ادغام نشده وجود ندارد، بنابراین GitHub به سادگی شعبه را بلافاصله حذف می کند. با این حال، از آنجایی که همیشه یک شاخه از راه دور را نشان می دهد، این رفتار باید منطقی باشد.
توجه داشته باشید که پس از حذف، دکمه ای برای بازیابی شاخه را مشاهده خواهید کرد. با این حال، این به سادگی یک ویژگی واگرد مفید است، فقط در صورتی که به طور تصادفی روی نماد حذف کلیک کنید. به آن تکیه نکنید، زیرا به محض اینکه صفحه را رفرش کنید یا از آن دور شوید، این گزینه را از دست خواهید داد!
حذف شعبه های محلی و راه دور در Bitbucket
Bitbucket مانند GitHub به شما اجازه حذف شاخه پیش فرض را نمی دهد. Bitbucket این را شاخه اصلی در تنظیمات مخزن می نامد. می توانید هر شاخه دیگری را که در برگه شاخه ها فهرست شده است، از طریق منوی اقدامات مربوطه حذف کنید:
همچنین اگر در حال انجام یک عملیات پاکسازی بزرگ هستید، می توانید بیش از یک شعبه را همزمان حذف کنید:
حذف شاخه ها بخشی از یک گردش کاری Git معمولی است
شاخههای Git میتوانند گردش کار شما را پیچیده کنند، بهویژه شاخههای محلی، راه دور و ردیابی. اما برای توسعه ساده روزمره، احتمالاً همیشه در حال ایجاد و حذف شعب محلی هستید. این یکی از جنبه های اصلی یک گردش کار git معمولی است که باید به آن عادت کنید.
اگر برایتان سخت است که دقیقاً چگونه یک شاخه را به خاطر بسپارید، به تنظیم نام مستعار برای حذف شاخه ها و به سادگی این فرآیند را در نظر بگیرید.