Как сказать Git всегда тянуть ветку master? - PullRequest
21 голосов
/ 25 февраля 2010

Я нахожу git docs очень загадочным в этом вопросе. Я хочу сделать простую вещь, но, кажется, делать это совсем не просто.

У меня следующая ситуация:

$ git remote -v
origin  git://192.168.0.49/mnt/repos
stick   /mnt/titanium/podaci/repos

Я могу использовать git pull для извлечения и слияния из источника, и это прекрасно работает:

$ git pull
Already up-to-date.

Я могу вытащить из палку вот так:

$ git pull stick master
Already up-to-date.

Однако, когда я вытаскиваю из stick без master part, я получаю это сообщение:

$ git pull stick
From /mnt/titanium/podaci/repos
 * [new branch]      su2009  -> stick/su2009
You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me either.  Please
name which branch you want to merge on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details on the refspec.

If you often merge with the same branch, you may want to
configure the following variables in your configuration
file:

    branch.master.remote = <nickname>
    branch.master.merge = <remote-ref>
    remote.<nickname>.url = <url>
    remote.<nickname>.fetch = <refspec>

See git-config(1) for details.

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

Я ожидаю, что то, что я пытаюсь сделать, очень распространено, но я не смог найти прямой ответ на примере.

1 Ответ

26 голосов
/ 25 февраля 2010

Что означает здесь «ваш файл конфигурации»?

Файл конфигурации вашего репо, найденный по адресу .git/config в корне вашего репо.(Существует также глобальный конфигурационный файл для каждого пользователя по адресу ~/.gitconfig, но вы не хотите помещать туда специфичные для репозитория настройки.)

Какой файл мне следует редактировать, а какой именновведите?

Вы можете использовать программу git config для записи информации о конфигурации, вместо того, чтобы вводить ее вручную.Однако, если вы хотите сделать это вручную, просто откройте .git/config - синтаксис довольно прост.

Какой псевдоним в этом случае?

Псевдоним,в данном случае это название пульта - так что «палка».Вам не нужно беспокоиться о параметрах remote.*, так как они уже настроены, но вам нужно установить параметры branch.*.Эти опции сообщают Git, что объединять при выполнении git pull с флешки.

Скажем, вы хотите объединить мастер с флешки при выполнении git pull с флешки.Вы можете сделать это следующим образом:

# Sets stick as default remote for git pull.
# Note that origin will no longer be the default remote for git pull!
$ git config branch.master.remote stick

# Automatically merge in stick's master branch when doing a git pull
$ git config branch.master.merge refs/heads/master

Так что теперь, когда вы делаете git pull без какой-либо удаленной или refspec-информации, он будет извлекать все ветви с флешки и сливаться с основной веткой флешки.Обратите внимание, что origin больше не будет по умолчанию;для слияния с основной веткой origin вы должны будете использовать git pull origin master.

Если вы не хотите менять пульт по умолчанию на stick, вам придется продолжать использовать git pull stick master.

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