如何在git中撤消恢复?

时间:2016-12-12 10:36:39

标签: git gerrit

我需要撤消在git中完成的恢复并推送到远程存储库。其他人不使用存储库。我做了这个,后面认为恢复只是另一个提交。因此我尝试了git reset然后推送但它似乎没有用。有谁知道如何做到这一点?

-> git reset --hard HEAD~1
HEAD is now at ee7abe9 <msg>
-> git push -f origin myBranch
Total 0 (delta 0), reused 0 (delta 0)
remote: Processing changes: done    
To 'ssh://remoteRepo'
  ! [remote rejected] mo_cache-BLACK -> mo_cache-BLACK (non-fast forward)
error: failed to push some refs to 'ssh://remoteRepo'

4 个答案:

答案 0 :(得分:2)

您绕过Gerrit审核(不使用refs / for /)并尝试重写历史记录(-f)。我认为你没有权限。如果你这样会更容易:

  1. 转到Gerrit网络用户界面
  2. 搜索您要还原的更改
  3. 点击“还原”按钮
  4. 将创建更改,只需审核,批准并提交。

答案 1 :(得分:0)

你可以尝试

git push origin +myBranch

+符号将强制更新远程分支

答案 2 :(得分:0)

这可以通过两种方式实现:

  • 如果更改推送到git。 git checkout HEAD^^ -- . and then git add -A && git commit .. git push.
  • 如果没有在git git reset --hard HEAD^上推送更改(尽管如此,请更加小心!)

答案 3 :(得分:0)

我通常喜欢在分支路径上进行所有提交,除非我错误地输入了密码或某些敏感信息。所以我建议你恢复还原&#34;将git revert <commit id of your previous revert>然后commitpush应用于origin