我們團隊使用的自定義Git工具會爲每個正在處理的新功能/錯誤創建一個分支。刪除分支 - >安全地編輯.git/refs/heads文件?
通常情況下,當更改接近完成時,遠程分支將通過另一個工具進行更改,從而使分支的本地副本不同步。
經常出現的一個問題是如何清理所有留在開發人員本地存儲庫中的陳舊分支。因爲輸入很多git branch -D branchname
可能會令人厭倦,當有幾十個這些陳舊的分支。
我一直給出的一些建議是從他們的.git/refs/heads
文件夾中刪除文件。
這裏是我送出去的全文:
一個手工技巧,在批量快速刪除樹枝是從你的
.git/refs/heads folder
刪除 文件。你會看到 對應分支的文件名。一個分支只是一個指向sha的指針,它使得文件的內容變爲 ,因此刪除該文件將刪除該分支。 請注意,這將只有刪除指針,而不是指針碰巧指向的實際提交 。
這個建議似乎安全的,但我偏執地認爲存在一種情況,這種做法可能會失敗或導致工作丟失。
除了刪除master
文件等明顯錯誤的用戶以外,這是否安全?
編輯:來自這個問題this question不同的,因爲由於我們的內部工具的性質,往往--merged
如果本地分支是無效的或不將不足以確定。另外,我們不希望一舉刪除分支......需要爲每個分支手動檢查以避免刪除仍然活動的分支。
根據我的理解,我不會因爲這樣做而失去工作。正如你所說,你只是刪除了頭像,但文件和提交仍然完好無損。最壞的情況,即使你刪除了一個重要的分支頭,你的reflog仍然應該在'.git/logs /'中完成。有可能是一個更好的,整潔/整潔的方法,不涉及手動刪除文件。 – Chris
可能重複的[如何刪除所有已合併的git分支?](https://stackoverflow.com/questions/6127328/how-can-i-delete-all-git-branches-which-have-been -merged) – smarber