我正在为一个大型遗留项目使用git,该项目有两个分支- v1.0和v2.0。每个分支的源代码在不同的地方是非常不同的,在其他地方是相同的。当我对v1.0分支进行bug修复时,我必须使用git cherry-pick将它们添加到v2.0分支,因为git merge 1.0基本上会丢弃v2.0源代码的大部分。
然而,v1.0上的新开发已经停止,使用git cherry-pick将修复程序复制到v2.0分支是很麻烦的。我更希望能够以某种方式告诉git,当我从1.0 -> 2.0进行git merge时,仅从1.0提交历史中的特定时间点开始合并(即当新的开发停止时)。这个是可能的吗?这将允许我对v1.0源代码进行多次修复,并在一次点击中将更改合并到v2.0中,而不是使用多次选择。
发布于 2011-07-21 16:36:33
从2.0分支执行
git merge --strategy=ours v1.0我没有亲自测试它,所以首先在一些不重要的东西上尝试它,但从文档中看,它正是您所需要的。
来自文档:
这将解析任意数量的头,但合并的结果树始终是当前分支头的树,有效地忽略来自所有其他分支的所有更改。它的目的是用来取代分支机构的旧开发历史。请注意,这与递归合并策略的-Xours选项不同。
https://stackoverflow.com/questions/6773196
复制相似问题