我在我的Rails应用程序中的一个分支上工作,提交并将其合并到我的主人中,因为我对所有内容感到满意,但现在我想再次取出该分支并放弃这些更改。
现在我将分支与主分区合并是可能还是太晚了?
由于
答案 0 :(得分:1)
你可以做git reset
。如果它只是最近的本地合并,这很好。
如果您已经将合并推送到某个地方,或者您有更多提交,那么这不是一个好主意。相反,你必须接受你的合并并做一个干净的git revert
。这样,历史记录仍包含合并,但恢复将撤消合并的效果。
答案 1 :(得分:1)
将提交推送到中心位置后,最好不要以任何方式修改它们。
另一种方法是生成反向提交。也就是说,提交撤消先前提交中的所有更改。一种方法是git-revert
。假设您已合并了提交<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"