将提交应用于多个发布分支 - Git Rebase或Cherry-Pick?

时间:2012-12-03 18:31:36

标签: git cherry-pick

我正在开发一个带有Master分支的项目,当然:P和多个发布分支随着时间的推移而创建。我正在使用的版本控件是Git,我正在寻找一种方法,将一个版本分支中的错误修复(例如)应用于其他版本,如果可能的话。即...

--------------------------Master
|      |        |__v3
|      |__v2
|___v1
  |____bugfix

如果我修复了v1中发现的错误,并且需要在v2和v3中应用相同的修复(并且只修复),有没有办法可以在Git中方便地执行此操作?

我是Git的新手,但我认为我可能能够奇瑞 - 选择提交并应用它,但我想知道分支是否需要在层次结构中直接相关?是否有可能从v1下的'bugfix'到v2和v3进行挑选或修改? (或v3到v2等)Afaik,rebase将重播所有提交,所以我认为樱桃选择是我正在寻找的,但我不确定如何实现这一目标。帖子我看到从孩子到父母分支的樱桃挑选。我试图做的是什么?

干杯。

1 个答案:

答案 0 :(得分:6)

如果错误修正是一次提交,或者一系列提交,你可以使用樱桃选择。

你的错误修正是一次提交,sha是SHA1

git checkout v2
git cherry-pick SHA1

如果是几次提交,请在第一次提交错误修复,SHA1和错误修正SHA2的最后一次提交之前找到提交sha

git checkout v2
git cherry-pick SHA1..SHA2