有没有办法回滚我最后一次推送到Git?

时间:2011-07-11 18:42:54

标签: git

  

可能重复:
  Undoing a 'git push'

我推了一些不好的代码,而且我是存储库的唯一用户。如何回滚我的上次提交?

2 个答案:

答案 0 :(得分:198)

由于您是唯一的用户:

git reset --hard HEAD@{1}
git push -f
git reset --hard HEAD@{1}

(基本上,返回一个提交,强制推送到repo,然后再返回 - 如果你不关心提交,则删除最后一步)

如果不对本地仓库进行任何更改,您还可以执行以下操作:

git push -f origin <sha_of_previous_commit>:master

通常,在已发布的回购邮件中,git revert然后git push

会更安全

答案 1 :(得分:73)

首先,您需要确定上次已知提交的修订ID。如果您知道需要完全撤消一次提交,则可以使用HEAD^HEAD~{1}

git reset --hard <revision_id_of_last_known_good_commit>
git push --force