作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这个问题的设置需要一些谨慎的措辞。
从最简单的存储库开始:一次提交(如果需要,可以为空)。
从这个原始的一次提交 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
现在我想 merge 两个克隆,以便生成的提交图如下所示:
,--B-----C-----D-----E-----F-----G-----H-----I-----J-----K-----L
/
A
\
`--M-----N-----O-----P-----R-----S-----T-----U-----V
我试过很多方法,但我从来没有得到像上面那样的图表......
最佳答案
这对我来说没有任何技巧:
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
.
关于git - 如何嫁接远程分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15103497/
我想嫁接一个 merge 变更集: $ hg graft -UD --log -r 1909 skipping ungraftable merge revision 1909 我的解决方法是: hg
我是一名优秀的程序员,十分优秀!