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

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


1574


источник


Ответы:


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

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

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

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


2118



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

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

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


19



Если вы получаете сообщение от 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



Мне было интересно, почему я получил это большое предупреждающее сообщение на 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'поведение.


0