Git merge命令

时间:2010-03-13 05:45:42

标签: git

我正在阅读以下文章: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"

这是有道理的,但是,作为Git的新手,我很好奇为什么命令与之对比:

pu = !"git fetch origin -v; git merge origin/master; git fetch wycats -v; git merge wycats/master"

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

1 个答案:

答案 0 :(得分:2)

我不知道为什么会在这里进行章鱼合并(在DOS会话中为msysgit1.6.5)。
章鱼与几个父母合并。

如果我遵循“对远程回购中的两次修改以拉回”的例程,这是我在最终合并之前看到的(在一轮拉动之后):

alt text

chgB(来自main,即“origin”)和chgA(来自远程“mainA”)已在master逐个合并。

已经进行了另外两项更改并从中获取了chgB2来自chgA2来自mainA

如果我尝试仅合并mainA/master,我最终会:

alt text

chgA2已合并。来自“main”(原产地)的chgB2仍在那里停留......

但如果我在mainA中再尝试一次更改,并在merge命令中指定两个远程repos,则会发生章鱼合并:

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