将相同的更改应用于不同的分支

时间:2019-02-19 21:18:02

标签: git

如何将相同的更改(在几次提交中)应用于不同的分支?

首先,这与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>

1 个答案:

答案 0 :(得分:2)

  

当涉及到一系列提交时,挑选樱桃是不切实际的。

“问题”(如果可以这样称呼)是,如果您希望选择多个提交,并且按顺序进行排序,这是一个很好的解决方案。

但是,如果您希望排除多个提交,则需要cherry-pick分段进行。

例如: 鉴于以下提交:1-2-3-4-5-6-7-8-9,如果您想cherry-pick 1-35-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
相关问题