我进行了git commit
但尚未将其推送到存储库。因此,当我执行git status
,我得到 '#您的分支比'master' 提前 1 次提交。
因此,如果我想回滚我的最高提交,我可以这样做:
git reset --hard eb27bf26dd18c5a34e0e82b929e0d74cfcaab316
鉴于当我做git log
我得到:
commit eb27bf26dd18c5a34e0e82b929e0d74cfcaab316 Date: Tue Sep 29 11:21:41 2009 -0700 commit db0c078d5286b837532ff5e276dcf91885df2296 Date: Tue Sep 22 10:31:37 2009 -0700
实际上,当您使用git reset
,应该引用您要重置为的提交;因此,您可能需要db0c078
提交。
一个更简单的版本是git reset --hard HEAD^
,以重置为当前磁头之前的前一个提交;这样,您就不必在提交 ID 周围进行复制。
当您执行任何git reset --hard
时要当心,因为您可能会丢失所有尚未提交的更改。您可能要检查git status
,以确保您的工作副本是干净的,或者您确实想删除那里的所有更改。
另外,您可以使用origin/master
代替 HEAD,就像 @bdonlan 在注释中建议的那样: git reset --hard origin/master
如果您尚未将更改推送到远程
git reset HEAD~1
git status
检查工作副本是否干净。
否则,您已将更改推送到远程
git revert HEAD
此命令将还原 / 删除本地提交 / 更改,然后您可以按