0

我在 Rails 应用程序的一个分支上工作,提交并将其合并到我的 master 中,因为我对一切都很满意,但现在我想再次取出那个分支并丢弃这些更改。

现在我已经将分支与主分支合并,是否可能或为时已晚?

谢谢

4

2 回答 2

1

你可以做一个git reset. 如果只是最近的本地合并,这很好。

如果您已经将合并推送到某个地方,或者您有更多的提交,那么这不是一个好主意。相反,你必须接受你的合并并做一个干净的git revert. 这样,历史记录仍然包含合并,但还原将撤消合并的效果。

于 2013-05-12T20:11:48.990 回答
1

将提交推送到中心位置后,最好不要以任何方式修改它们。

另一种方法是生成反向提交。也就是说,撤消先前提交中所有更改的提交。一种方法是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"
于 2013-05-12T20:20:37.480 回答