it-roy-ru.com

Предупреждение: Push.default не установлен; его неявное значение меняется в Git 2.0

Я уже некоторое время пользуюсь Git и недавно скачал обновление только для того, чтобы найти это предупреждение, когда я пытаюсь Push.

warning: Push.default is unset; its implicit value is changing in 
Git 2.0 from 'matching' to 'simple'. To squelch this message 
and maintain the current behavior after the default changes, use: 

  git config --global Push.default matching

To squelch this message and adopt the new behavior now, use: 

  git config --global Push.default simple

Я могу установить одно из упомянутых значений, но что они значат? В чем разница между simple и matching?

Если я изменю его на одном клиенте, нужно ли мне что-то делать на других клиентах, с которыми я делюсь репо?

1602
Marko

Это подробно объясняется в документах , но я постараюсь подвести итог:

  • matching означает, что git Push будет выдвигать все ваши локальные ветви к тем, которые имеют одинаковые имена на пульте дистанционного управления. Это позволяет легко нажать на ветку, которую вы не собирались.

  • simple означает, что git Push будет выдвигать только текущую ветвь к той, из которой git pull будет извлекать , а также проверяет, совпадают ли их имена. Это более интуитивное поведение, поэтому значение по умолчанию меняется на это.

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

2135
hammar

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

Так что ответ @ Hammar правильный. Использование Push.default simple, в некотором смысле, похоже на настройку отслеживания в ваших ветках, поэтому вам не нужно указывать удаленные узлы и ветви при толкании и вытягивании. Опция matching будет выдвигать все ветви к их соответствующим аналогам на пульте по умолчанию (который был настроен первым, если вы не настроили репо в противном случае).

Я надеюсь, что в будущем другие найдут для себя что-то полезное, что я запускал Git 1.8 на OS X Mountain Lion и никогда не видел этой ошибки. Обновление до Mavericks - это то, что внезапно заставило его появиться (запуск git --version покажет git version 1.8.3.4 (Apple Git-47), который я никогда не видел до обновления ОС.

19
Bill

Если вы получили сообщение от git с жалобой на значение simple в конфигурации, проверьте свой git version.

После обновления XCode (на Mac под управлением Mountain Lion), которое также обновило git с 1.7.4.4 до 1.8.3.4, оболочки запускались до того, как обновление все еще выполнялось git 1.7.4.4 и пожаловался на значение simple для Push.default в глобальной конфигурации.

Решением было закрыть оболочки, работающие на старой версии git, и использовать новую версию!

7
Tom Barron

Мне было интересно, почему я получаю это большое предупреждающее сообщение в Ubuntu 16.04 (который поставляется с Git 2.7.4), но не в Arch Linux. Причина в том, что предупреждение было удалено в Git 2.8 (март 2016 г.):

При переходе к Git версии 2.0 пользователь получал довольно громкое предупреждение при запуске "git Push" без установки переменной конфигурации Push.default. Мы больше не предупреждаем, потому что переход был завершен давно.

Поэтому вы не увидите предупреждение, если у вас Git 2.8 и более поздние версии, и вам не нужно устанавливать Push.default, если вы не хотите изменить поведение 'simple' по умолчанию.

1
Eugene Yarmash