Разница в ч / б $ git pull и $ hg pull - PullRequest
4 голосов
/ 17 августа 2011

Стив Лош: Руководство по переходу в Mercurial -

Mercurial по умолчанию пушит / тянет все ветви, а git пушит / тянет только текущую ветку.

Интересно, верно ли мое понимание:

Мне приходит в голову, что когда я делаю git pull, я на самом деле делаю fetch из всех ветвей, но merge происходит только с текущей веткой, на которой я сижу. Это очень близко к mercurial, где pull получает мне все с пульта; но ничего не делает merge пока ничего.

В mercurial a push отправляет все, но требуется явное update, чтобы объединить вещи обратно. Я не совсем уверен в поведении git' операции push.

Ответы [ 2 ]

4 голосов
/ 17 августа 2011

В Git вы должны тянуть / толкать все ветви одну за другой. Таким образом, вы можете работать в локальных филиалах, не портя сервер.

Вы можете указать каждый раз, какую ветвь вы хотите вытянуть / нажать: git push origin master означает, что вы хотите перенести свою ветвь master на исходную, которая часто является сервером по умолчанию.

0 голосов
/ 17 августа 2011

То, что происходит, когда git pull выполняется без каких-либо ссылок, основано на конфигурации (из секции поведения по умолчанию git-pull man):

Чтобы определить, какие удаленные ветви выбрать (и при необходимости сохранить в ветвях удаленного отслеживания), когда команда запускается без каких-либо параметров refspec в командной строке, используются значения переменной конфигурации remote..fetch, и если их нет, используется $ GIT_DIR / remotes / file и используются его строки Pull:. В дополнение к форматам refspec, описанным в разделе ОПЦИИ, у вас может быть всплывающая ссылка refspec, которая выглядит следующим образом:

ссылки / главы / : ссылки / пультов ДУ / происхождение /

http://www.kernel.org/pub/software/scm/git/docs/git-pull.html

Опять же, что подталкивается git push, зависит от конфигурации (и параметров)

Без дополнительной настройки работает как git push origin :.

Поведение по умолчанию этой команды, если не задано, можно настроить, установив опцию push на пульте.

Например, чтобы по умолчанию отправлять только текущую ветвь в начало, используйте git config remote.origin.push HEAD. Любой допустимый может быть настроен по умолчанию для git push origin.

http://kernel.org/pub/software/scm/git/docs/git-push.html

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