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


当前回答

这里我只发布了一条清晰的管道

步骤1:使用gitlog获取提交ID。

git log

步骤2:使用git reset返回到以前的版本:

git reset --hard <your commit id>

其他回答

如果要保留历史记录,显示提交和还原,应使用:

git revert GIT_COMMIT_HASH

输入消息解释为什么要回复,然后:

git push  

当您发出gitlog时,您将看到“错误”的提交和还原日志消息。

git reset—软Id提交允许您删除提交,但不删除当前文件。然后使用git push-f源名称分支

为了我,rebase做了这个把戏

$ git rebase -i HEAD~98

# Delete everything except for the most recent commit on the shown editor caused by "rebase"

$ git push origin -f production-static

注:在强制推送以减少我的评论之后。然后我推送了另一组文件,然后在另一台计算机上尝试使用相同的“存储库和分支”。令人惊讶的是,没有冲突。这成为了我减少存储库大小的方法,同时避免了对使用相同git的其他本地用户的拉取冲突

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

如果要修复最近的提交,可以通过以下操作撤消提交并取消其中的文件:

git reset HEAD~1

这将使存储库返回到暂存文件的gitadd命令之前的状态。您的更改将在您的工作目录中。HEAD~1指的是分支当前尖端以下的提交。

如果要取消提交N个提交,但将代码更改保留在工作目录中:

git reset HEAD~N

如果您想摆脱最新的提交,并且不想保留代码更改,可以进行“硬”重置。

git reset --hard HEAD~1

同样,如果您想放弃最后N次提交,并且不想保留代码更改:

git reset --hard HEAD~N