Git Release Branch with Squashed Commits

时间:2012-05-26 20:08:20

标签: git branch release

我正在尝试对此做类似的事情:Creating GitHub repository with only a subset of a local repository's history

我目前在master上提交了所有提交,现在我想创建一个名为release的分支,它只提交过去提交的所有提交,并且没有旧提交的历史记录。

我尝试在该链接中使用该方法,但这样做导致任何进一步的合并到发布中不自动合并,这有点烦人。 (它给出的错误是Squash提交 - 不更新HEAD。自动合并失败;修复冲突然后提交结果。) 有没有不同的方法可以自动合并?

我知道最简单的方法是创建一个单独的仓库,但理想情况下,我宁愿只使用分支。

我希望它最终看起来像这样:

v1是来自提交2的合并,v2是来自提交5的合并等等。

[发布]:

  • V2
  • V1

[主]:

  • commit 5
  • commit 4
  • commit 3
  • commit 2
  • 初始

我是git的新手很抱歉,如果这真的很明显! 谢谢!

1 个答案:

答案 0 :(得分:2)

如果你想在发布分支中进行提交,它将与主分支中的顶级提交具有完全相同的树,你可以这样做:

# make sure we are on the release branch
git checkout release
# populate index and working tree with tree from top master commit 
git read-tree -u --reset master
# commit it as "v1"
git commit -m v1