2017-03-02 136 views
1

足夠的新手,我不能完全理解答案enter link description hereenter link description here刪除50個Git分支?

大師在我的電腦上,我有大約50個分支機構。我也推動它Bitbucket和Herku的服務。

我想1)刪除所有舊的分支,但我不介意2)有一個日誌的副本,以防萬一我想回去看看。這可以做到嗎?

我使用TextMate並將其用於許多Git任務;也有SourceTree,但還沒有真正使用它。

+0

你想要一個檔案分支,但你想刪除所有的舊分支。你如何期待我們調和這個矛盾? – Alexander

+0

檔案是一個選項。它可能看起來像差異。某種可搜索的文本文件。 – Greg

+0

好吧,你必須自己創建。分支是併發的,正在進行的工作的標記,它們不是意味着被歸檔,而是意味着被合併。 – Alexander

回答

1

1)刪除所有舊的分支,但我不介意2)有一個日誌的副本,以防萬一我想回去看看。這可以做到嗎?

如果這些分支,正走在他們的命名約定的模式,你可以在一個Git的bash shell會話,做:

git branch -D $(git for-each-ref --format="%(refname:short)" refs/heads/<pattern>) 

git reflog將爲您提供一種方式來取回並恢復所有在當地分公司......至少在未來30天。此時,所述reflog將被過期並被修剪。

但是,在嘗試刪除所有內容之前,您還可以製作git clone --mirror的回購,這樣,您仍然可以擁有本地副本。

+0

沒有一致的命名約定。如果我創建了一個克隆,我是否必須從Heroku開始?這將會很不方便,因爲URL會改變。謝謝你的回答。 – Greg

+0

@Greg創建一個克隆只是爲了妥善保管。至於刪除,你可以簡單地在'git branch -D'命令中列出那些分支,用空格分隔。 – VonC

+0

明白了。但不太清楚語法'git branch -D branch-1,branch-2'還是? – Greg