будет git pull auto merge, если вытащить из _any_ пульта - PullRequest
2 голосов
/ 16 января 2012

допустим, у меня есть следующий файл конфигурации

[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "origin"]
    url = ssh://origin.com
    fetch = +refs/heads/*:refs/remotes/origin/*
[remote "faraway"]
    url = ssh://faraway.com
    fetch = +refs/heads/*:refs/remotes/faraway/*

, если я сделаю git checkout master; git pull origin, тогда:

  • fetch будет работать
  • merge объединит выбранную ветку с моей текущей веткой.

Если я запусту git checkout master; git pull faraway, тогда git-merge объединит что-нибудь?В конце концов, я вытягиваю с пульта, отличного от настроенного пульта.

Ответы [ 2 ]

3 голосов
/ 16 января 2012

remote = origin указывает поведение по умолчанию для извлечения (на самом деле, выборки), когда вы находитесь в ветви. Поэтому, когда вы делаете git pull, удаленный является исходным (что также является значением по умолчанию, т. Е. Даже если удаленный не был указан, он извлек бы из исходного. Если был указан какой-то другой удаленный, этот удаленный был бы выбран.)

И когда вы делаете git pull faraway, он будет извлекать удаленные ветви, но не объединит (поскольку удаленный не настроенный удаленный) его в текущем главном филиале, если вы не выполните git pull faraway master

0 голосов
/ 16 января 2012

git pull non-default-remote вернется

You asked to pull from the remote 'production', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.

Но если я наберу

git pull non-default-remote `git config remote.non-default-remote.fetch`

тогда он автоматически объединится с тем, что в данный момент извлечено на пульте, и полностью проигнорирует опцию слияния по умолчанию, поскольку я выполняю извлечение с пульта не по умолчанию.

...