我在其中一个提交中犯了一个错误。现在我想完全删除这个提交,所以看起来它从来就不存在。我不想在日志中看到这一点。
我已尝试过this question ("How to delete a 'git commit'")的所有提示,但我可以在日志中看到提交。我怎么能完全删除它?
- 编辑 -
好的,我没有提供完整的信息。 Kevin Ballard 是正确的。
到现在为止,我没有推动此提交,它只在我的机器中。 ouah 回答工作,命令
git log
不会显示,但命令
git reset --hard HEAD^
do是“chekout last commit并将分支更改为this”,因此我继续使用SmartGit之类的图形程序看到该提交。
- 编辑2 -
不,这是一个SmartGit漏洞!!!!提交真的消失了。我必须关闭日志窗口,然后再打开。提交不再存在。
答案 0 :(得分:11)
如果是最后一次提交
git reset --hard HEAD^
如果不是最后一次提交
git rebase -i commit_hash^
编辑器将打开,用提交删除整行,保存并退出。
请注意,如果分支已被推送,则重写历史记录或重新定位通常是一个坏主意,您可能更愿意使用
git revert commit_hash
将添加一个恢复提交commit_hash
的新提交。
答案 1 :(得分:2)
此命令(注意,它会重写历史记录):
git rebase --onto commitHash^ commitHash
(@ ouah&#39的解决方案对我没有用,而凯文已经做了,但他的解决方案不应该是评论,应该是这样的答案。)