回滚一个远程Git仓库
我有一个远程Git仓库,我需要回滚最后的n提交到冷遗忘。 
 你可以使用git revert <commit>…进行所有的n次提交,然后像平常一样按下,保持历史logging不变。 
 或者你可以用git reset --hard HEAD~n “roll back”– git reset --hard HEAD~n 。 如果您正在推送公共或共享的存储库,则可能会根据您的原始分支发散和破坏其他工作。  Git会阻止你这样做,但你可以使用git push -f来强制更新。 
elmarco是正确的…他的build议是最好的共享/公共仓库(或,至less公共分支机构)。 如果不共享(或者你愿意打乱别人),你也可以推特别的参考:
 git push origin old_master:master 
或者,如果有一个特定的提交SHA1(比如说缩写为1e4f99e),你想回到:
 git push origin 1e4f99e:master 
幸运的是,我能够使用Pat Notz的解决scheme ,彻底删除了不需要的提交。 但是,最初我得到了错误
 error: failed to push some refs to 'ssh://git@gitrepo.git' To prevent you from losing history, non-fast-forward updates were rejected* 
 但是添加强制( -f )选项会覆盖此错误 
 git push -f origin 52e36b294e:master 
如果您可以直接访问远程仓库,则可以始终使用:
 git reset --soft <sha1> 
这是有效的,因为没有试图修改不存在的工作目录。 有关更多详细信息,请参阅原始答案:
我怎样才能取消提交git仓库中的最后一个提交?