如何从我的分支历史记录中删除提交?
我应该使用 git reset --hard HEAD
吗?
最佳答案
小心 git reset --hard
将删除您的工作目录更改。在运行此命令之前,请务必存储您想要保留的任何本地更改。
假设你正坐在那个提交上,那么这个命令会搞砸它......
git reset --hard HEAD~1
HEAD~1
表示在 head 之前提交。
或者,您可以查看 git log
的输出,找到您要备份到的提交的提交 ID,然后执行此操作:
git reset --hard <sha1-commit-id>
如果你已经推送了它,你将需要强制推送以摆脱它......
git push origin HEAD --force
但是,如果其他人可能已将其 pull 下,那么您最好还是开始一个新分支。因为当他们 pull 时,它只会 merge 到他们的工作中,然后您会再次将其推回。
如果您已经推送,最好使用 git revert
,创建一个“镜像”提交来撤消更改。但是,两次提交都将记录在日志中。
仅供引用 -- git reset --hard HEAD
如果你想摆脱 WORK IN PROGRESS 是很好的选择。它会将您重置为最近的提交,并清除您的工作树和索引中的所有更改。
最后,如果您需要找到您“删除”的提交,它通常会出现在 git reflog
中,除非您对存储库进行了垃圾回收。
关于git - 如何从分支中删除提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1338728/