我有一个Git仓库,有很多提交和单独的代码,比方说
/Proj1
Run Code Online (Sandbox Code Playgroud)
我还有另一个Git仓库,其中有1个提交,这不是常见的提交,
/Proj2
Run Code Online (Sandbox Code Playgroud)
如何合并两个repos并使用父提交正确显示历史记录?基本上,两个repos之间没有任何共享提交,但我希望有一个具有两组代码的repo.我希望它看起来像:
proj2 commit
proj2 commit
proj1 commit (root)
Run Code Online (Sandbox Code Playgroud)
我知道rebase是一个选项,但不确定是否使用--onto替换根提交(如果我从远程仓库进行提取,它似乎会这样做rebase --onto --root master).
我尝试过使用最初看起来像是工作的git子树,但是当我使用git-tfs推送我的提交时,我收到的错误是
警告:父...不属于TFS跟踪分支(未在TFS中检查),将被忽略
并且提交实际上并没有推高(也可能是因为它是一个子树).
编辑:我只希望以1个repo(Proj1)结束,但是在Proj1在master分支上提交之后会有Proj2的提交.
m00*_*0.0 15
Cupcake帮助解决了这个问题.这是一种方法:
在ProjA中,将Proj B添加为远程:
git remote add projb C:\projB
Run Code Online (Sandbox Code Playgroud)
做一个git fetch来获取projB主分支的所有提交:
git fetch projb
Run Code Online (Sandbox Code Playgroud)
从projB的根开始到projA主分支的tip(end)的rebase:
git rebase --onto master --root projb/master
Run Code Online (Sandbox Code Playgroud)
就是这样!执行此操作可能风险较低,但这绝对可以解决这个问题.
| 归档时间: |
|
| 查看次数: |
8454 次 |
| 最近记录: |