内容来自 DOC https://q.houxu6.top/?s=如何从分支中删除提交?
如何从我的分支历史中删除提交?我应该使用git reset --hard HEAD
吗?
注意:git reset --hard
会删除你的工作目录的更改。
在运行此命令之前,请确保存储任何要保留的本地更改。
假设你正在那个提交上,那么这个命令将会将其打回...
git reset --hard HEAD~1
HEAD~1
意味着头部之前的提交。
或者,您可以查看git log
的输出,找到要备份到的提交的提交ID,然后执行以下操作:
git reset --hard <sha1-commit-id>
如果您已经推送了它,您需要强制推送才能摆脱它...
git push origin HEAD --force
然而,如果其他人可能已经拉取了它,那么最好启动一个新分支。因为当他们拉取时,它将只是将其合并到他们的工作中,并且您将再次将其推送回去。
如果您已经推送了它,也许最好使用git revert
来创建一个“镜像”提交,它将撤销更改。但是,两个提交都将出现在日志中。
顺便说一下:git reset --hard HEAD
非常适合用于清除正在进行中的工作。它将您重置回最近的提交,并清除工作树和索引中的所有更改。
最后,如果您需要查找已“删除”的提交,通常可以在git reflog
中找到,除非您已经清除了存储库中的垃圾。