我有一个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