我在 Rails 应用程序的一个分支上工作,提交并将其合并到我的 master 中,因为我对一切都很满意,但现在我想再次取出那个分支并丢弃这些更改。
现在我已经将分支与主分支合并,是否可能或为时已晚?
谢谢
我在 Rails 应用程序的一个分支上工作,提交并将其合并到我的 master 中,因为我对一切都很满意,但现在我想再次取出那个分支并丢弃这些更改。
现在我已经将分支与主分支合并,是否可能或为时已晚?
谢谢
你可以做一个git reset
. 如果只是最近的本地合并,这很好。
如果您已经将合并推送到某个地方,或者您有更多的提交,那么这不是一个好主意。相反,你必须接受你的合并并做一个干净的git revert
. 这样,历史记录仍然包含合并,但还原将撤消合并的效果。
将提交推送到中心位置后,最好不要以任何方式修改它们。
另一种方法是生成反向提交。也就是说,撤消先前提交中所有更改的提交。一种方法是git-revert
。假设您已经合并了 commits和<sha2>
,您可以:<sha3>
<sha4>
git revert <sha4>
git revert <sha3>
git revert <sha2>
如果您想在一次提交中恢复所有更改,请尝试以下--no-commit
选项:
git revert --no-commit <sha4>
git revert --no-commit <sha3>
git revert --no-commit <sha2>
git commit -m "Undid feature merge"
生成单个反向提交的另一种方法是git checkout
:
git checkout -f <sha2>
git commit -a -m "Undid feature merge"