2013-11-24 4 views
1

Я новичок в git, и я работаю над настройкой подмодулей. Я пытаюсь понять все команды и повеситься на строках ниже.Что делает git config?

git config branch.master.remote origin 
git config branch.master.merge refs/heads/master 

Может кто-нибудь объяснить, что мерзавец конфигурации делает и как интерпретировать

branch.master.remote 
branch.master.merge 

https://git.wiki.kernel.org/index.php/GitSubmoduleTutorial

+2

Попробуйте 'git config --help'. –

+0

'git config' используется для запроса или установки параметров конфигурации для git. В [git scm book] (http://git-scm.com/book/en/Customizing-Git-Git-Configuration) обсуждается общие варианты, которые могут вас заинтересовать, и все они обсуждаются в человеке ('man git-config', который делает то же самое, что и' git config --help' @RobinGreen). – simont

ответ

0

По умолчанию мерзавец конфигурации будет изменять локального конфигурации для текущего мерзавца репо.
(Есть три уровня конфигурации: system, global and local)

мерзавца конфигурация branch.master.xxx вы упоминаете для создания upstream branch к вашему местному мастеру филиала, для того, чтобы ваш местному репо, чтобы знать, что и где нужно нажать на главную ветку.

That tutorial довольно старый, и nowadays (1.8.0+), we would use:

git branch -u origin/master master 

Это будет модифицировать тот же конфигурационный файл, но вы не должны быть осведомлены о синтаксисе ветви конфигурации.

И вы могли бы рассмотреть все добывающие ветви с git branch:

git branch -avv 

Указание на входе филиала является обязательным для первого толчка, как описано в разделе «Why do I need to explicitly push a new branch?».

+0

'-avvv'? Кажется, что '-a' является недопустимым вариантом, если вы не укажете' set-head'. – LopSae

+0

@ LopSae извините, я имел в виду 'git branch', а не' git remote'. Я отредактировал ответ. – VonC

+0

Есть ли также использование для третьего 'v'? Я знаю, что есть '-v' и' -vv', но я никогда не видел третьего. – LopSae

1

Чтобы иметь возможность объединять изменения от ветви вверх по течению в одном из ваших локальных ветвей, вам нужны две части информации: - Пульт дистанционного управления, где живет ветвь вверх по течению. - Название восходящей ветви.

С этим, и как только у вас есть цель местное отделение проверило, вы можете выполнить следующую команду:

git pull <upstream_remote> <upstream_branch> 

сделать намеченное слияние.

Наиболее распространенный случай, слияние мастер ветви удаленного происхождения в свой местный мастер-ветви, затем будет:

git pull origin master 

Но было бы утомительно того, чтобы это снова и снова набрать. Таким образом, вы можете сохранить некоторые типичные слова git, чтобы помнить эти две части информации (удаленный и ветвь), так что вы можете ввести только git pull.

Это то, что вы делаете git config.Вспомнив, для местного отделения мастера, два необходимых штук информации:

git config branch.master.remote origin 

«При вытягивании в мастер, используйте удаленный источник»

git config branch.master.merge refs/heads/master 

«При вытягивании в мастер, используйте мастер филиала удаленного "

Как вы видите, понятия легки. Это просто синтаксис, который немного запутан. Две заключительные замечания по этому поводу:

  • ссылки/главы/мастер это имя удаленного филиала , как видно на удаленном репо.
  • refs/heads/master является канонической формой для того, что обычно называют только ведущим. Мы используем канонические имена в определенных местах конфигурации.

Наконец, в @VonC сая, мы в настоящее время сделать это через более полированные/простые команды, но я думаю, что стоит знать, что мерзавец делает под одеялом, и мерзавец конфигурации команд красиво выставить его в этом дело.

+1

Я бы не стал напрямую связываться с конфигурацией ветки, но я согласен, что важно посмотреть, что происходит, о чем вы подробнее расскажете, чем в моем собственном ответе. +1 – VonC