我想知道如何删除提交。
通过delete,我的意思是,如果我没有做那个承诺,当我将来做一推,我所做的更改不会推到远程分支。
delete
我阅读了 git help,我认为我应该使用的命令是git reset --hard HEAD. 这个对吗?
git help
git reset --hard HEAD
小心: git reset --hard 将删除您的工作目录更改。在运行此命令之前,请务必存储您想要保留的任何本地更改。
git reset --hard
假设你正坐在那个提交上,那么这个命令会搞砸它......
git reset --hard HEAD~1
该HEAD~1方法的头前提交。
或者,您可以查看 的输出git log,找到要备份到的提交的提交 ID,然后执行以下操作:
git log
git reset --hard <sha1-commit-id>
如果你已经推了它,你需要用力推才能摆脱它......
git push origin HEAD --force
但是,如果其他人可能已经取消了它,那么你最好开始一个新的分支。因为当他们拉动时,它只会将其合并到他们的工作中,而您会再次将其推回原处。
如果您已经推送,最好使用git revert, 创建一个“镜像”提交来撤消更改。但是,两个提交都将在日志中。
git revert
仅供参考 -git reset --hard HEAD如果您想摆脱正在进行的工作,那就太好了。它会将您重置回最近的提交,并删除工作树和索引中的所有更改。
-git reset --hard HEAD
最后,如果您需要找到您“删除”的提交,它通常存在,git reflog除非您对存储库进行了垃圾收集。
git reflog