所以我有3个分支机构;
develop
- 我的继续发展部门version_1
- 发布分支version_2
- 发布分支我必须在version_2
上做一个修补程序来重新发送该版本,这是2个文件中的2行更改,非常小。
我想将该修补程序应用于version_1
和develop
。
所以我;
git checkout version_1
git merge <commit checksum>
我认为提交只包含更改,因此只会应用这些更改。但合并冲突是因为它试图更新两个分支之间的所有更改。
有没有办法合并/移动/仅应用小提交中的更改到其他分支?
我可以手动重新实现这些分支上的修补程序,但这看起来很麻烦,特别是因为可能需要重新应用更多的修补程序并将其推广到所有其他分支。
Cheers, Will
答案 0 :(得分:2)
仅合并一个或几个提交意味着使用git cherry-pick
首先取消你刚才做的合并:见“Undo a Git merge?” 然后:
git checkout version_1
git cherry-pick <commit checksum>
这可以适用于多次提交或一系列提交:请参阅“How to cherry pick a range of commits and merge into another branch”。
答案 1 :(得分:2)
您需要cherry-pick
这些提交。
切换到要添加提交的分支:
git checkout develop
然后,cherry-pick
提交。首先执行git reflog
并获取修补程序提交的SHA-1
。
然后,当你在分支develop
,cherry-pick
git cherry-pick <commit SHA obtained above>
在另一个分支version_1
上执行类似的操作。