我已经对我希望撤消的git仓库进行了一些更改.
我的git repo看起来像这样:
A-B---- master
\ /
C-D * develop
Run Code Online (Sandbox Code Playgroud)
我在develop分支机构,忘记它与master分支不同,进行了更改develop,将其合并master,然后推送到我的遥控器(称为publish).
因为自B(共同祖先)以来主人没有变化,所以git进行了快进合并.
现在,我的回购看起来像这样:
A-B-C-D master, develop, remotes/publish/master, remotes/publish/develop.
Run Code Online (Sandbox Code Playgroud)
我想恢复最后一次合并,恢复master到B.
从我在如何撤消Git中的最后一次提交中读到的内容?,我曾经git reset sha-of-B将我的master分支恢复到修订版B.
问题:
develop到修订版D?Sim*_*ias 81
如果重置分支主机,则不会触及开发分支.为了按顺序重新输入所有内容,您应该:
git checkout master
git reset --hard sha-of-B
git checkout develop
git reset --hard sha-of-D
git checkout master
git merge develop --no-ff
Run Code Online (Sandbox Code Playgroud)
Rob*_*mer 20
git reset --hard @{1}
git push publish develop --force-with-lease=master
--force-with-lease以安全的方式获得许可--force可以默默地覆盖别人的工作,所以我从不使用它