我有一個Git樹像如何真正刪除一個git分支(即刪除所有對象/提交)?
A---B---C topic
/
D---E---F---G master <--
我想刪除主題,並在其上的所有對象。
我注意到主題的SHA ID,然後鍵入:
git branch -D topic
git gc # <-- I also tried prune here...
git checkout -b temp <SHA1 ID of topic>
的最後一個命令後,我希望得到一個錯誤(類似「不存在的對象ID ...」或somth這樣。 )。然而,沒有錯誤,並且gitk顯示了與上面相同的樹形結構??
我錯過了什麼 - 我認爲gc/prune應該刪除所有不可訪問的對象?
VonC的答案解釋了事實的真相。如果你想知道「哲學」的原因,那簡直是git非常努力地不讓你意外刪除任何東西。 git gc本身就是一個清理/重新打包操作。你必須說一些更強的東西來讓它潛在地刪除最近的工作。 – Cascabel 2010-05-21 17:32:29