如何将相同的更改(在几次提交中)应用于不同的分支?
首先,这与How to copy commits from one branch to another?不同,因为目的不同,因此该问题的答案是特定的。
我有一个项目,该项目具有一个主分支和一个稳定分支-分支早已分叉。现在,我需要向该稳定版本分支回传修复程序-我在master分支上进行了几次提交,我也希望在该稳定分支上进行此提交(一个错误修复)。我无法合并,因为分支分歧,并且有大量未合并的更改-我只想要我的8个提交。
实际上,How to cherry pick a range of commits and merge into another branch?的答案与我正在寻找的答案更加接近,
但是,答案始于:
当涉及到一系列提交时,挑选樱桃是不切实际的。
,并且没有给出明确的git
命令供人们遵循。
更新:建议的答案GIT cherry pick all my commits that exists in one branch to another branch不能解决我的问题,正如我在评论中立即解释的那样-这个问题,“我想选择全部从分支B到分支A的分支A中尚未存在的提交无需手动搜索每个“ ,这与我在这里提出的要求不同。 / p>
答案 0 :(得分:2)
当涉及到一系列提交时,挑选樱桃是不切实际的。
“问题”(如果可以这样称呼)是,如果您希望选择多个提交,并且按顺序进行排序,这是一个很好的解决方案。
但是,如果您希望排除多个提交,则需要cherry-pick
分段进行。
例如:
鉴于以下提交:1-2-3-4-5-6-7-8-9
,如果您想cherry-pick
1-3
和5-7
分成几段:
git cherry-pick 1.. 3 5..7
那么,明确的git命令可以选择我的提交范围吗?
上面的命令。
# (2 dotes) Pick all commits in the range from a to be
git cherry-pick a..b
# (3 dotes) pick all commits which are not in both branches
git cherry-pick a...b
# pick a single commit
git cherry-pick a
# pick commit range(s)
git cherry-pick 1..3 5 6 7