壁球从一个分支提交到另一个分支(合并)

时间:2018-07-13 06:56:49

标签: git

我正在使用具有特定git项目存储库的项目。有三个分支:

  1. master
  2. development
  3. release

结构如下:从master衍生出development,在那里开发和测试功能。一旦开发了一组功能,就将development合并(无快速转发)到master中,并且该合并提交代表发行版本或中间版本。没有任何东西直接提交给master,它仅包含来自development的合并提交。

将某个版本视为发行版时,需要以某种方式将其移至release。这个想法是release具有线性历史记录,其中每个提交代表一个发行版本。在release中不应有任何中间提交。

以该示例为例:release/01.03.00.00表示与master/01.03.00.00相同的存储库状态。现在,我想在release中创建一个提交,表示master/01.04.00.00master/01.03.00.00之间的区别。 是否可以不使用git patch来完成操作吗?可以将git cherry-pick与一系列提交一起使用(请注意,有时master之间在发布之间可能会有多个合并提交版本)似乎无效(需要-m才能处理合并提交,但随后会抱怨未合并提交)。

enter image description here

1 个答案:

答案 0 :(得分:1)

我没有一个仓库可以测试这一点,但是,您是否尝试过从master创建一个分支,压缩该新分支的所有提交,然后然后将其合并到发行版中?

类似的东西:

$ git checkout master
$ git branch -b tmp-master
$ git rebase -i HASH # the hash of the first commit from master you want to bring into release
# pick the last commit, squash all other commits
$ git checkout release
$ git cherry-pick HASH # put the hash of the commit you just made in tmp-master