如何使用git将多个提交从一个分支转移到另一个分支?

时间:2014-05-07 17:18:42

标签: git git-workflow

有两个分支:
- 包含客户接受的产品的生产分支
- 开发分支机构开发人员进行令人毛骨悚然的实验 曾几何时,年轻的开发人员决定从生产部门分支他的超级功能 所以问题:
1)。如何在不合并prod分支的所有功能的情况下转移生产分支进行开发。图片解释得更好:

enter image description here

第一个问题是练习,另一个是好奇心的问题:
2)。与1)相同+我需要保留生产中的功能分支 3)。喜欢1),但我希望转移一致的提交和#34; F"并且不想转移" E"提交
4)。我想转移E和F,不包括2次提交,1次提交来自#34; E"和1提交" F"。
5)。我可以自动解决有利于其中一个分支的冲突吗?

我找到git cherry-pick命令,但似乎它不是整个分支的最佳方式。我应该学习git rebase还是别的什么?哪种方式最适合我的问题?

谢谢,抱歉我的英语不好。

1 个答案:

答案 0 :(得分:3)

git checkout develop
git cherry-pick production..feature

正是你想要的第一个问题,它挑选了featureproduction历史中不存在的每个提交。对于其余的问题,在gitrevisions manpage中找到的各种其他指定提交范围的方法都可以使用,并且在您熟悉这些方法之后,开始看起来有点单调乏味的方法来确定如何指定列表或者你开始想要随时修改,你会准备好欣赏rebase -i

一个小细节:cherry-pickrebase进行新的提交。