我对我的git仓库进行了一些更改,现在希望撤销这些更改。
我的git仓库看起来像这样:
A-B---- master
\ /
C-D * develop
我当时在develop
分支上,忘记了它与master
分支的差异,在develop
上做出更改,将其合并到master
中,然后推送到我的远程仓库(名为publish
)。
由于自从B(公共祖先)以来,在master
上没有更改,因此Git执行了快进式合并。
现在,我的仓库看起来像这样:
A-B-C-D master, develop, remotes/publish/master, remotes/publish/develop.
我想撤销最后一次合并,将master
还原到B版本。
根据我在如何撤销 Git 中最后的提交?上看到的内容,我使用了git reset sha-of-B
将master
分支还原到版本B。
问题:
- 如何将
develop
还原到版本D? - 然后如何将这些更改推送回远程/发布版本?
git revert -m 1 hashValue
将会失败,提示 hashValue 不是一个合并。因为这是快进式合并。 - Tihomir