我的git repositry中有一些垃圾提交。这些是由例如当再次更改最新提交并意外创建其他提交时,git gui。
现在我有一些提交,没有指定HEAD(分离,不是任何分支的一部分)。
我想整理一下,我的问题是:如何删除这些提交(参见F,G和H)?这是使用rebase还是还原或重置?或者使用其他工具?我必须参加哪个提交呢?
A -- B -- C -- D -- E [master]
\-- F -- G
\-- H
由于
基督教
答案 0 :(得分:17)
试试这个:
git reflog expire --expire=now
git gc --prune=now
答案 1 :(得分:1)
执行以下操作:
git config gc.reflogexpireUnreachable now
git gc --prune=now
git config --unset gc.reflogexpireUnreachable
答案 2 :(得分:0)
<input type="number" min="-32767" max="32767" onkeydown="return false //return value false" value="0">
<!--make an input-->
注意:我知道这是在投票最多的答案的评论中写的,但我一直发现自己回到这个问题而不是立即找到有效的答案。
git reflog expire --expire=now --all
git gc --prune=now
选项是投票最多的答案中唯一缺少的选项,但却是它对我有用的原因。