【发布时间】:2009-09-28 18:56:55
【问题描述】:
我在项目中间开始使用 Git,前两次提交只是一些初始设置(.gitignore 和 .gitattributes),第三次提交 M2 添加了SVN 中继:
I1 -- I2 -- M2 -- N -- .. -- Z
我在一个名为svn的分支中导入了SVN历史,其中M1是SVN主干(与M2内容相同, .gitignore 和 .gitattributes 除外):
A -- B -- ... -- K -- L -- M1
问:合并两个分支的最佳方法是什么?
我可以将M1和M2合并成M3,然后rebase,但是我不知道如何删除 I1 和 I2 提交,如果我可以安全地删除 M3 提交(我找到了一些保留合并提交的建议,但在这种情况下 M3 不再需要了)。
A -- B -- ... -- K -- L -- M1
\
M3 -- N' -- .. -- Z'
/
I1 -- I2 -- M2 -- N -- .. -- Z
另一种方法是手动挑选 N .. Z 提交到 svn 分支,但我想避免这种方法。
最优雅的解决方案是重新设置由 N 引入的更改 .. Z 在 svn 分支之上提交,但我没有'还没有找到没有共同祖先的两个分支所需的语法。
【问题讨论】: