合并没有公共提交到主分支?

时间:2015-10-16 03:50:09

标签: git tfs git-tfs

我有一个Git仓库,它有很多提交和单独的代码,比如说

/Proj1

我还有另一个Git仓库,其中有一个提交不是常见的提交,

/Proj2

如何合并两个repos并使用父提交正确显示历史记录?基本上,两个repos之间没有任何共享提交,但我希望有一个包含两组代码的repo。我希望它看起来像:

proj2 commit
proj2 commit
proj1 commit (root)

我知道rebase是一个选项,但不确定是否使用--onto替换了根提交(如果我从远程仓库和rebase --onto --root master进行提取,它似乎会这样做。)

我尝试过使用最初看起来很有效的git子树,但是当我使用git-tfs推送我的提交时,我收到的错误是

  

警告:父...不属于TFS跟踪分支(未在TFS中检查)并将被忽略

并且提交实际上并没有提升(也可能是因为它是一个子树)。

编辑:我只希望以1个repo(Proj1)结束,但在主分支上Proj1提交之后会有Proj2的提交。

1 个答案:

答案 0 :(得分:14)

Cupcake帮助解决了这个问题。这是一种方法:

在ProjA中,将Proj B添加为远程:

git remote add projb C:\projB

执行git fetch以获取projB主分支的所有提交:

git fetch projb

从projB的根开始到projA主分支的尖端(结束):

git rebase --onto master --root projb/master

就是这样!执行此操作可能风险较低,但这绝对可以解决这个问题。