当前位置:  开发笔记 > 运维 > 正文

回滚远程Git存储库

如何解决《回滚远程Git存储库》经验,为你挑选了3个好方法。

我有一个远程Git存储库,我需要将最后的n提交回滚到冷漠的遗忘中.



1> elmarco..:

您可以使用git revert 所有n次提交,然后照常推送,保持历史不变.

或者你可以"回滚" git reset --hard HEAD~n.如果您正在推动公共或共享存储库,您可能会根据原始分支发生分歧并破坏其他工作.Git会阻止您这样做,但您可以使用git push -f强制更新.


由于没有工作目录,因此无法在远程存储库中使用get reset --hard.最初的问题只说有一个远程回购,没有提到当地的回购.
您可以使用以下命令回滚到特定的提交:`git reset --hard [sha1]`其中sha1是提交哈希标识符.
只是一个注释,git push -f将强制将所有本地分支推送到他们的遥控器

2> Pat Notz..:

elmarco是正确的......他的建议最适合共享/公共存储库(或者至少是公共分支机构).如果没有共享(或者你愿意破坏他人),你也可以推送一个特定的参考:

git push origin old_master:master

或者,如果有一个特定的提交SHA1(比如缩写形式的1e4f99e),你想回到:

git push origin 1e4f99e:master


关于SHA作为参考点的重点!

3> geedoubleya..:

幸运的是,我可以使用Pat Notz的解决方案来完全删除不需要的提交.但是,最初我得到了错误

error: failed to push some refs to 'ssh://git@gitrepo.git'
To prevent you from losing history, non-fast-forward updates were rejected*

但添加force(-f)选项会覆盖此错误

git push -f origin 52e36b294e:master

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有