Git合并命令

4
我正在阅读以下文章:http://github.com/guides/keeping-a-git-fork-in-sync-with-the-forked-repo,其中提到通过创建以下别名从两个存储库中同时拉取更改。
pu = !"git fetch origin -v; git fetch wycats -v; git merge wycats/master"

这很有道理,但是作为一个新手,我很好奇为什么命令是这样而不是那样:
pu = !"git fetch origin -v; git merge origin/master; git fetch wycats -v; git merge wycats/master"

或类似的东西。基本上,我想知道合并参数为wycats/master是什么意思,以及它如何自动了解origin/master。寻找快速说明。


很可能原始文章是错误的。git merge 不会自动查找 origin/master。据我所知,应该按照您的建议进行操作,或者原始命令的最后一个命令应该是 git merge origin/master wycats/master,以将两个分支合并到当前分支中。 - Jakob Borg
它也在这里:http://yuilibrary.com/gallery/developer,那是我最初看到它的地方。执行git merge origin/master wycats/master是否也可以?我还没有尝试过。 - Bialecki
1个回答

2
我不明白为什么这里会发生章鱼合并(在DOS会话中的msysgit1.6.5)。章鱼合并是指一个合并有多个父级的合并。
如果我按照“在远程repo中进行两次修改以拉回”的例行程序,那么在最终合并之前(经过一轮拉取后),我看到以下内容:
chgB(来自主分支即“origin”)和chgA(来自远程“mainA”)已逐一合并到master中。
另外还有两个更改:从origin中获取的chgB2和从mainA中获取的chgA2。
如果我只尝试合并mainA/master,则结果如下:
已合并chgA2。来自“main”(即origin)的chgB2仍然挂在那里...
但是,如果我在mainA中再做一次更改,并在合并命令中指定两个远程repo,则会发生章鱼合并:
C:\Prog\Git\tests\octo\dest1>git merge origin/master mainA/master
Trying simple merge with 9e3e16d8e75cec3be621c47fb72e955cc2574f0f
Trying simple merge with 4dfb282a31d5bafddb244c84b66ede41e28f1042
Merge made by octopus.
 a.txt |    2 +-
 b.txt |    3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)

alt text


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接