我有一个远程Git存储库,我需要将最后一次n
提交回滚到冷遗忘中。
发布于 2009-02-25 23:51:17
您可以对所有n次提交使用git revert <commit>…
,然后像往常一样进行推送,保持历史记录不变。
或者你可以用git reset --hard HEAD~n
“回滚”。如果您正在推送公共或共享存储库,您可能会基于您的原始分支而分散并破坏其他工作。Git将阻止您这样做,但您可以使用git push -f
来强制更新。
发布于 2009-02-26 00:43:22
埃尔马科是对的..。他的建议对于共享/公共存储库(或者至少是公共分支)是最好的。如果它没有被分享(或者你愿意破坏其他人),你也可以推送一个特定的ref:
git push origin old_master:master
或者,如果有一个特定的提交SHA1 (比方说1e4f99e,缩写形式),您想要移回:
git push origin 1e4f99e:master
发布于 2014-05-21 23:14:30
幸运的是,我可以使用Pat Notz's solution,它完全消除了不需要的提交。然而,最初我得到了这个错误
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
https://stackoverflow.com/questions/588414
复制相似问题