这个问题的设置需要一些谨慎的措辞。
从最简单的存储库开始:一次提交(如果需要,可以为空)。
从这个原始的one-commit repo中,分别在/path/to/repo1
和/path/to/repo2
中创建两个单独的克隆。现在想象这两个克隆中的每一个都独立于另一个克隆,演变为简单的线性历史。
如果A
是克隆repo1
和repo2
时原始存储库中的单个提交,则情况可能如下所示:
repo1:
A-----B-----C-----D-----E-----F-----G-----H-----I-----J-----K-----L
repo2:
A-----M-----N-----O-----P-----R-----S-----T-----U-----V
现在我想组合两个克隆,以便生成的提交图如下所示:
,--B-----C-----D-----E-----F-----G-----H-----I-----J-----K-----L
/
A
\
`--M-----N-----O-----P-----R-----S-----T-----U-----V
我尝试了许多方法,但我从来没有得到像上面那样的图表......
答案 0 :(得分:3)
这适用于我,没有任何黑客攻击:
git clone -o repo1 path/to/repo1 target
cd target
git remote add repo2 path/to/repo2
git fetch repo2
git branch master2 repo2/master
此时,您将拥有2个本地分支:master
跟踪repo1/master
和master2
跟踪repo2/master
。
如果您git log master
,则会看起来像L
,K
,J
,...,C
,B
,<强> A
强>
如果您git log master2
,则会看起来像V
,U
,T
,...,N
,M
,<强> A
强>
答案 1 :(得分:0)
看起来并不那么困难。
首先,如果要将它们合并为一个仓库,必须有两个分支。
然后将clone1推送到名为branch1的远程
将clone2推送到远程调用,branch2
稍后,返回任何仓库并获取最新代码。
BR, 添