如何从分支历史记录中删除提交?我应该使用git reset-hard HEAD吗?


当前回答

git重置--硬

git推原点HEAD—力

如果一个或多个提交被标记,请首先删除标记。否则,标记的提交不会被删除。

其他回答

在我的情况下,我对这只小狗的魔法代码是这样的:

git reset --hard @{u}

测试一下,告诉我。我试过几种不同的方法,但只有这一种对我有帮助。

另一种可能是我个人最喜欢的命令之一:

git rebase -i <commit>~1

这将在您要执行的提交之前以交互模式-i启动重新启动。编辑器将开始列出此后的所有提交。删除包含要删除的提交的行并保存文件。Rebase将完成剩下的工作,只删除该提交,并将所有其他提交重新播放到日志中。

如果你是IntelliJ用户,界面简直太棒了。只需单击一次,即可立即看到效果。这个地方的快捷方式:MacOS上的Cmd+9。

强制更改历史记录

假设您不仅希望删除最后一次提交,而且希望删除最后n次提交中的特定提交,请执行以下操作:

gitrebase-i HEAD~<要返回的提交数>,所以如果您想查看最后五次提交,请使用gitrebase-iHEAD~5。

然后在文本编辑器中,将单词pick更改为放置在要删除的每个提交旁边。保存并退出编辑器。瞧!

附加更改历史记录

尝试git-restore<commit hash>。Revert将创建一个新的提交,以撤消指定的提交。

git重置--硬HEAD~1你现在将处于前一个位置。拉动树枝。推送新代码。提交将从git中删除