2015-10-15 132 views
1

我在當前的git回購中有幾個分支。他們中的大多數人已經被用來測試最終被放棄的新功能,其中一些已經實施併合併到我的主人。另一個(稱爲master2)是指我正在使用的相同代碼的不同概念(並且可能值得擁有自己的分支,但是由於它現在被凍結了,我只想保留在那裏,直到我有時間投入到它)。Git - 清理舊分支

我的問題是:除了主人和主人2之外,我該如何刪除所有舊的和現在未使用的分支?

我不介意在遠程存儲庫中保存所有舊的歷史記錄,但我也不介意丟失它們。我的目標是在本地處理回購時避免舊東西混亂我的自動完成。

我瀏覽過的其他問題似乎正在尋找更復雜/特殊的情況下,其中一個想要保持所有分支合併爲主或類似的組合。相反,我希望(從某種意義上)重新開始,只有我的master和master2分支在本地可見並且是最新的。特別是,我有一些尚未合併的分行,但我仍然想保留,不像here建議的那樣。

如果理解這是科學計算的回購有關。

+0

可能重複[如何刪除所有已合併的git分支?](http://stackoverflow.com/questions/6127328/how-can-i-delete-all-git-branches-which-have - 合併) – Makoto

+0

如果沒有其他的事情,這個笨蛋會給你命令讓你開始;如果你想只是批發刪除的東西,這是'xargs'命令的一個變種。 – Makoto

回答

1

您可以刪除的分公司與-D開關:

$ git branch -D branch_to_remove 

Git不會有建造它的方法來消除所有的樹枝,但是這兩個(至少,不以我所知) ,但你可以使用一個簡單的shell腳本來做到這一點:

$ git branch -D `git branch | grep -v master` 

grep -v反轉grep的模式匹配。如果分公司有不同的名稱,那麼你可以使用

$ git branch -D `git branch | grep -v 'master\|another_branch'` 

這將刪除所有分支,但那些命名主機和另一個分支。