我的分支历史如下:
现在我想恢复与分支558的合并。我有它的代码,所以我在做:
git revert -m 1 1784adf300f43fb76391e92f80be01132eddb680
结果是:
[master d51e2b3] Revert "Merge branch '558'"
1 files changed, 15 insertions(+), 29 deletions(-)
此时,当我尝试将恢复恢复到原点时,我发现只有合并的558
分支的最后一次提交被还原(以及合并中的多个文件受到影响)。如何从合并的分支恢复所有提交,或者我在这里做了别的错误。
答案 0 :(得分:2)
您可以使用git revert
指定多个提交,提交间隔。在这里,您需要找到分支558中的第一个提交,该提交在两个分支合并之前与master和提交分开。
然后,您可以使用:
git revert -n {first_commit}..{last_commit}
这里,-n
选项允许不为每个还原的提交进行提交,它只会对您之后可以提交的更改进行分级。
如果您的历史很简单,就应该有效,就像您的例子一样。
更正和澄清: git不会直接接受合并提交或包含合并的间隔以进行还原。然而,可以仅使用合并提交和选项-m i
来恢复整个分支,其中i表示合并的哪一侧要恢复(从1开始,所以这里它将是2)。
整个问题非常微妙,this document对此有用。