Git merge команда - PullRequest
       1

Git merge команда

4 голосов
/ 13 марта 2010

Я читаю следующую статью: 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 Ответ

2 голосов
/ 13 марта 2010

Я в недоумении, почему здесь происходит слияние осьминога (msysgit1.6.5 в сеансе DOS).
Осьминог за одно слияние с несколькими родителями.

Если я буду следовать процедуре «две модификации в удаленном репо, чтобы отступить», то вот что я вижу перед окончательным слиянием (после одного раунда вытягивания):

alt text

chgB (из основного, то есть "origin") и chgA (из удаленного "mainA") были объединены один за другим в master.

Два других изменения были внесены и извлечены: chgB2 из источника и chgA2 из mainA.

Если я попытаюсь объединить только mainA/master, я получу:

alt text

chgA2 было объединено. chgB2 от "main" (origin) все еще там висит ...

Но если я попробую еще одно изменение в mainA и укажу оба удаленных репо в команде слияния, то произойдет слияние осьминога:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...