如何在旧版本中添加功能并将它们与Git中的开发版本合并?

时间:2014-02-26 16:54:51

标签: git version-control merge branch

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

  1. 从主分支中检出较旧的提交到单独的发布分支。
  2. 从1中创建的发布分支创建功能分支。
  3. 添加功能,将其提交到功能分支。
  4. 仅将功能分支中的更改应用于开发分支。
  5. 将功能分支与发布分支合并并删除它。
  6. 假设当前版本是1.5,我会在发布分支中创建1.6版本,并在添加功能后不要触摸它。只有那些主要是单独类形式的附加文件的更改才会合并到2.0版的开发分支中。我想这样做,因为1.5和2.0之间的代码基础发生了根本性的变化,而且它们在这一点上基本上是不可合并的。

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

1 个答案:

答案 0 :(得分:1)

最简单的方法应该是使用cherry-pick:

  1. 查看发布分支
  2. 添加功能并提交
  3. 查看主分支并挑选所需的提交
  4. 您可以选择单个提交(即git cherry-pick <commit>)或一系列提交(即git cherry-pick <commit 1>..<commit 2>

    git ready - pick out individual commits