Предупреждение: нажимаем.по умолчанию unset; его неявное значение изменяется в 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?

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

4 ответов


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

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

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

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


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

Итак, ответ @hammar правильный. Используя push.default simple - Это, в некотором роде, как настройка отслеживания на ваших ветвях, поэтому вам не нужно указывать пульты и ветви при нажатии и вытягивании. The matching опция подтолкнет все ветви к их соответствующим аналогам на пульте дистанционного управления по умолчанию (который является первым, который был настроен, если вы настроил свое РЕПО иначе).

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


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

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

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


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

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

таким образом, вы не увидите предупреждение, если у вас есть git 2.8 и позже, и вам не нужно устанавливать push.default Если вы хотите изменить значение по умолчанию 'simple' поведение.