【发布时间】:2019-01-25 01:08:56
【问题描述】:
我有两个分支,分别称为 test 和 prod-candidate。这两个分支在它们的历史中有一个共同的提交,a0e378cfe28,它最初是在测试分支中,后来被合并到 prod-candidate 中。在这次提交之后,这两个分支采用了不同的方式,并有其他相关的提交。
现在是时候再次将 test 合并到 prod-candidate 中了,所以我希望通过将 prod-candidate 分支中的所有提交恢复为提交 a0e378cfe28 我能够毫无问题地进行合并。我进行了还原,通过运行 git diff 我能够验证还原是否成功,因为 prod-candidate 分支与提交 a0e378cfe28 具有完全相同的内容。
不幸的是,在检查 prod-candidate 并运行 git merge test 后,我在 POM 文件中遇到了冲突,我不明白为什么。测试分支有一个版本为18.4.0-101 的POM 和prod-candidate,在revert 之前版本为18.3.0-204,当前版本为18.3.0-101(与提交a0e378cfe28 相同)。
为什么我不能在恢复到公共基础提交后合并分支?
【问题讨论】:
-
“我希望通过将 prod-candidate 分支中的所有提交还原为提交 a0e378cfe28”是什么意思?你具体执行了什么命令?
-
请注意,“完全相同的内容”并不意味着到达那里的历史是相同的。变更历史对于 git 来说比所有变更累积的最终结果更重要。
-
@Code-Apprentice 我将 prod-candidate 分支中的每个提交都还原到 a0e378cfe28。这样,prod-candidate 分支就处于 test 分支曾经的状态,因此我希望能够将 test 合并到其中。
标签: git merge git-merge git-revert