🧹 چگونه می توان تمام شاخه های GIT محلی را به جز موجود فعلی حذف کرد

مدتی با Git کار می کنید؟ مخزن محلی شما ممکن است با شاخه های قدیمی مورد نیاز شما به هم ریخته باشد.
اگر از تمیز کردن آنها یکی یکی خسته شده اید ، در اینجا یک لاینر وجود دارد تمام شاخه های GIT محلی را به جز یکی از مواردی که در حال حاضر در آن هستید حذف کنیدبشر 🧼
✅ دستور
git branch | grep -v "$(git rev-parse --abbrev-ref HEAD)" | xargs git branch -D
🧠 چه کاری انجام می دهد
بیایید آن را به مرحله به مرحله تقسیم کنیم:
🔍 git rev-parse --abbrev-ref HEAD
این به شما نام می دهد شاخه فعلی شما روشن هستید
main
📋 git branch
همه شاخه های محلی را لیست می کند ، مانند این:
feature/login
feature/profile
* main
🔎 grep -v "$(git rev-parse --abbrev-ref HEAD)"
این شعبه فعلی را از لیست حذف می کند. -v
به معنای “خطوط تطبیق” است.
🧹 xargs git branch -D
این پردازش نیرو (-D
) هر شاخه از خروجی قبلی منتقل می شود.
⚠ هشدار
این دستور خواهد شد نیروی حذف تمام شاخه های محلی به جز یکی از فعلی شما. یعنی:
- هیچ تغییرات ناآشنا در آن شاخه ها از بین می روند.
- این نه شاخه های از راه دور را تحت تأثیر قرار دهید.
- با احتیاط استفاده کنید.
اگر می خواهید ایمن باشید ، جایگزین کنید -D
با -d
:
git branch | grep -v "$(git rev-parse --abbrev-ref HEAD)" | xargs git branch -d
این تنها شاخه هایی را که در شاخه فعلی ادغام شده اند حذف می کند.
📦 نکته حرفه ای: آن را به عنوان نام مستعار تبدیل کنید
اگر خود را اغلب از این استفاده می کنید ، آن را به نام مستعار پوسته خود اضافه کنید:
alias git-clean-branches='git branch | grep -v "$(git rev-parse --abbrev-ref HEAD)" | xargs git branch -D'
سپس فقط اجرا کنید:
git-clean-branches
🚀 خلاصه
هنگامی که با شاخه های قدیمی تمام شد و می خواهید فضای کاری خود را تمیز نگه دارید ، این تک لاینر شما را از حذف هر شاخه به صورت دستی نجات می دهد.
نه بیشتر:
git branch -d branch1
git branch -d branch2
فقط یک دستور و شاخه های محلی شما دوباره مرتب هستند. 👌