Предупреждение: 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?

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

1531
задан Marko 31 окт. '12 в 0:48
источник поделиться

3 ответов

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

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

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

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

2089
ответ дан hammar 31 окт. '12 в 1:11
источник поделиться

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

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

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

17
ответ дан Bill 26 окт. '13 в 20:00
источник поделиться

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

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

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

6
ответ дан Tom Barron 31 янв. '14 в 18:35
источник поделиться

Другие вопросы по меткам