我进行了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~1git status检查工作副本是否干净。
否则,您已将更改推送到远程
git revert HEAD此命令将还原 / 删除本地提交 / 更改,然后您可以按