我正在阅读以下文章:
http://github.com/guides/keeping-a-git-fork-in-sync-with-the-forked-repo,他们提到了通过创建以下别名,从而同时提取两个repos的更改:
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.寻找快速解释.
最佳答案 我不知道为什么会在这里进行章鱼合并(在DOS会话中为msysgit1.6.5).
章鱼与几个父母合并.
如果我遵循“对远程仓库进行两次修改以撤回”的例程,这是我在最终合并之前看到的(在一轮拉动之后):
chgB(来自main,即“origin”)和chgA(来自远程“mainA”)已经在master中逐个合并.
已经进行了另外两项更改:来自origin的chgB2和来自mainA的chgA2.
如果我尝试只合并mainA / master,我最终得到:
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(-)