首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >回滚远程Git存储库

回滚远程Git存储库
EN

Stack Overflow用户
提问于 2009-02-25 23:33:52
回答 4查看 102.6K关注 0票数 112

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-02-25 23:51:17

您可以对所有n次提交使用git revert <commit>…,然后像往常一样进行推送,保持历史记录不变。

或者你可以用git reset --hard HEAD~n“回滚”。如果您正在推送公共或共享存储库,您可能会基于您的原始分支而分散并破坏其他工作。Git将阻止您这样做,但您可以使用git push -f来强制更新。

票数 136
EN

Stack Overflow用户

发布于 2009-02-26 00:43:22

埃尔马科是对的..。他的建议对于共享/公共存储库(或者至少是公共分支)是最好的。如果它没有被分享(或者你愿意破坏其他人),你也可以推送一个特定的ref:

代码语言:javascript
复制
git push origin old_master:master

或者,如果有一个特定的提交SHA1 (比方说1e4f99e,缩写形式),您想要移回:

代码语言:javascript
复制
git push origin 1e4f99e:master
票数 37
EN

Stack Overflow用户

发布于 2014-05-21 23:14:30

幸运的是,我可以使用Pat Notz's solution,它完全消除了不需要的提交。然而,最初我得到了这个错误

代码语言:javascript
复制
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)选项会覆盖此错误

代码语言:javascript
复制
git push -f origin 52e36b294e:master
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/588414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档