我正在使用git进行大型遗留项目,该项目有两个分支--v1.0和v2.0。每个分支的来源在不同的地方是非常不同的,在其他地方是相同的。当我修复v1.0分支时,我必须使用git cherry-pick
将它们添加到v2.0分支,因为git merge 1.0
基本上会删除v2.0源代码的大部分内容。
但是,新开发已在v1.0上停止,并且使用git cherry-pick
将修复程序复制到v2.0分支是很麻烦的。我宁愿以某种方式告诉git当我从1.0开始git merge
时 - > 2.0仅从1.0提交历史中的特定点开始合并(即新开发停止时)。这可能吗?它允许我对v1.0源进行多次修复,并在一次点击中将更改合并到v2.0中,而不是使用多个樱桃选择。
答案 0 :(得分:3)
从2.0分支执行
git merge --strategy=ours v1.0
我没有亲自测试过,所以先尝试一下不重要的东西,但是从文档来看,它正是你需要的。
来自文档:
这会解析任意数量的头,但会生成合并的树 总是那个当前的分支头,实际上忽略了所有 来自所有其他分支的变化。它意味着用来取代 边支的旧发展史。请注意,这是不同的 从-Xours选项到递归合并策略。