2016-12-03 51 views
2

我已經繼承了一個有800多個分支的項目,每個分支都有數百次提交和數千次更改。創建分支是爲了隔離和解決項目中的小問題,但之後未刪除。刪除所有Git分支,但X和Y

現在試圖比較分支GitHub需要永遠,並逐一刪除分支是令人頭腦麻木。

我可以告訴git/github刪除X,Y,Z以外的所有分支,所以我只保留三個?

+0

的可能的複製(http://stackoverflow.com/questions/3670355/can-you-delete-multiple-branches-in-one-command-with-git) – Makoto

回答

2

在GitHub用戶界面中沒有這個功能,但是使用一點shell腳本很容易。

首先,列出所有的遠程分支機構到一個文件:

git branch -lr > branches.txt 

然後編輯該文件,刪除你不想刪除分支機構的名稱,加上任何頁眉/頁腳信息。

然後喂分支名稱與git和遠程刪除它們:?你能在使用Git一個命令刪除多個分支]

xargs git push origin --delete < branches.txt 
+1

類似於:'git branch -lr | grep -v X | grep -v Y | xargs git push origin --delete'可能會在單線程中做到這一點 –

+1

@PhilipWhitehouse:是的,但這是危險的 - 沒有機會審查它會做什麼。這就是說,感謝xargs的想法 - 我會用這個簡化我的答案。 –