2014-02-26 83 views
0

目前我只有一个主分支,代表项目当前的发展状态。我想向发布版本添加两个功能(这是主分支上的几个提交),然后发布它,然后仅将功能的更改合并到当前的开发版本(主分支)中。我的想法如下:如何将功能添加到旧版本并将它们与Git中的开发版本合并?

  1. 检出从主分支到一个单独的发布分支的较旧的提交。
  2. 从在1中创建的发布分支创建功能分支。
  3. 添加功能,将它们提交到功能分支。
  4. 仅应用从功能分支到开发分支的更改。
  5. 合并功能分支与发布分支并删除它。

假设当前的发布版本是1.5,我会在发布分支中创建1.6版本,添加特性后不要触摸它。只有这些变化(主要是以不同类别形式的附加文件)将被合并到2.0版本的开发分支中。我想这样做,因为1.5和2.0之间的代码基本上已经发生了根本性的变化,并且在这一点上它们基本上是无法装入的。

这是完成我的目标的正确和最简单的方法吗?完成所有步骤需要哪些特定的命令/ git函数?我已经考虑过使用git flow来进行未来的开发,以便让这种用例更容易,但我不太确定它是否对于我们的简单需求不是太复杂和冗余。

回答

1

最简单的方法应该是使用摘樱桃:

  1. 退房发布分支
  2. 添加的功能,并承诺他们
  3. 退房主分支和樱桃采摘通缉提交

您可以樱桃挑选个别提交(即git cherry-pick <commit>),或一个范围的提交(即git cherry-pick <commit 1>..<commit 2>

git ready - pick out individual commits

+0

我已经多次阅读樱桃采摘可以搞砸存储库的历史并产生不必要的冲突。我需要注意什么?有没有简单的方法来选择一个分支的所有提交,而不是分析日志并手动选择提交范围? –

相关问题