在使用Git流量或類似的作業流專案時,有超過一個穩定的分支存在我創造了很多功能分支(的feature/do-something-1,hotfix/fix-bug-1等等)。
有時我需要清除本地分支的串列,因為用幾十個基本分支來管理它們實際上是不可能的。我通常通過將分支名稱復制并粘貼到git branch -d命令中來一次洗掉它們。但是時間太長,洗掉整個存盤庫并再次克隆會更容易。
我想洗掉所有這些,除了master和develop在一個命令(無需撰寫額外的shell腳本/別名),但我已經在互聯網上找到的所有解決方案,只允許你洗掉一切,除了一個分支(master等)。這不是一個合適的解決方案。有沒有人遇到過類似的問題?
uj5u.com熱心網友回復:
讓我們分步進行,以便我們可以分解命令并了解它的作用:
git branch | grep -v " master$" | grep -v " develop$" | xargs git branch -D
注意:您不能洗掉當前已簽出的分支。
一步一步:
zrrbite@ZRRBITE MINGW64 /d/dev/branch_del_test (master)
$ git branch
develop
* master
test
test2
zrrbite@ZRRBITE MINGW64 /d/dev/branch_del_test (master)
$ git branch | grep -v " master$"
develop
test
test2
zrrbite@ZRRBITE MINGW64 /d/dev/branch_del_test (master)
$ git branch | grep -v " master$" | grep -v " develop$"
test
test2
zrrbite@ZRRBITE MINGW64 /d/dev/branch_del_test (master)
$ git branch | grep -v " master$" | grep -v " develop$" | xargs git branch -D
Deleted branch test2 (was 7767978). <-- only the output of the last xargs run is shown
zrrbite@ZRRBITE MINGW64 /d/dev/branch_del_test (master)
$ git branch
develop
* master
uj5u.com熱心網友回復:
這是相同答案的更簡單變體:
git branch -D $(git branch | grep -v -e "master$" -e "develop$")
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/368838.html
