Предупреждение: 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
?
Если я изменю его на одном клиенте, мне нужно будет что-нибудь сделать на других клиентах, с которыми я разделяю репозиции?
Ответы
Ответ 1
Это подробно объяснено в документах, но я попытаюсь суммировать:
-
matching
означает, что git push
будет нажимать все ваши локальные ветки на те, которые с тем же именем на пульте дистанционного управления. Это облегчает случайное нажатие ветки, которую вы не намеревались.
-
simple
означает, что git push
будет нажимать только текущую ветвь на ту, которая git pull
будет выходить из, а также проверяет соответствие их имен. Это более интуитивное поведение, поэтому значение по умолчанию меняется на него.
Этот параметр влияет только на поведение вашего локального клиента и может быть переопределен путем явного указания ветвей, которые вы хотите нажимать на командную строку. Другие клиенты могут иметь разные настройки, это влияет только на то, что происходит, когда вы не укажете, какие ветки вы хотите нажать.
Ответ 2
Я понимаю, что это старый пост, но поскольку я просто столкнулся с той же проблемой и не смог найти ответ, я думал, что добавлю немного.
Итак, ответ @hammar правильный. Использование push.default simple
в некотором смысле подобно настройке отслеживания на ваших ветких, поэтому вам не нужно указывать пульты и ветки при нажатии и вытягивании. Опция matching
будет выталкивать все ветки в соответствующие сопоставления на удаленном компьютере по умолчанию (который является первым, который был настроен, если вы не настроили свое репо в противном случае).
Одна вещь, которую я надеюсь, что другие находят полезной в будущем, заключается в том, что я запускал Git 1.8 на OS X Mountain Lion и никогда не видел этой ошибки. Обновление до Mavericks - это то, что внезапно появилось (запуск git --version
покажет git version 1.8.3.4 (Apple Git-47)
, который я никогда не видел до обновления ОС.
Ответ 3
Если вы получили сообщение от git, жалующееся на значение simple
в конфигурации, проверьте git version
.
После обновления XCode
(в Mac
running Mountain Lion
), который также обновил git
от 1.7.4.4 до 1.8.3.4, оболочки началось до того, как обновление все еще выполнялось git 1.7.4.4 и жаловалось на значение simple
для push.default в глобальной конфигурации.
Решение заключалось в том, чтобы закрыть оболочки, запускающие старую версию git
, и использовать новую версию!
Ответ 4
Мне было интересно, почему я получил это большое предупреждающее сообщение на 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
вам не нужно устанавливать push.default
если вы не хотите изменять поведение "по-умолчанию 'simple'
по умолчанию.