1

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

我目前将所有提交都放在 master 上,现在我想创建一个名为 release 的分支,该分支仅包含所有过去提交的单个提交,并且没有旧提交的历史记录。

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

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

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

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

[释放]:

  • v2
  • v1

[掌握]:

  • 提交 5
  • 提交 4
  • 提交 3
  • 提交 2
  • 最初的

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

4

1 回答 1

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
于 2012-05-27T15:00:58.953 回答