如何删除不需要的git提交?

时间:2011-08-07 19:34:46

标签: git

我的git repositry中有一些垃圾提交。这些是由例如当再次更改最新提交并意外创建其他提交时,git gui。

现在我有一些提交,没有指定HEAD(分离,不是任何分支的一部分)。

我想整理一下,我的问题是:如何删除这些提交(参见F,G和H)?这是使用rebase还是还原或重置?或者使用其他工具?我必须参加哪个提交呢?

A -- B -- C -- D -- E [master]
      \-- F -- G
           \-- H

由于

基督教

3 个答案:

答案 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 选项是投票最多的答案中唯一缺少的选项,但却是它对我有用的原因。