2012-05-26 82 views
1

我试图做类似的事情这样:Creating GitHub repository with only a subset of a local repository's history的Git版本分行压扁提交

我现在有我的主人所有的提交,现在我想打一个分支叫新闻稿中只有一个承诺过去所有犯下的承诺都没有历史记录。

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

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

我希望它结束​​了看起来像这样:

V1是犯2合并,v2是从提交5合并等

[发行]:

  • V2
  • V1

[主]:

  • 提交5
  • 提交4
  • 提交3
  • 提交2
  • 初始

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

+0

你怎么样“进一步合并”? – ellotheth

+0

为什么不只是将主版本合并到每个版本的版本中,并且使用'git merge --no-ff'来始终在版本分支中为每个版本创建一个(合并)提交。 –

+0

@MattiasWadman,它确实创建了一个独立的分支结构,但是当你推动代码说Github时,以前的master提交仍然可见。 如果我创建释放分支关闭初始,然后使用 'git merge --squash' 它确实工作,做我想要的,但它仍然不能自动合并。 – Nick

回答

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