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

Когда я нажимаю на удаленный доступ в Git, я получаю это предупреждение:

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

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

To **********************************
   6b9a6d2..3ab1eab  master -> master

Что означает это предупреждение и что с ним делать?

Ответ 1

Это предупреждение было введено в Git 1.7.11 вместе с стилем simple нажатия. Проблема в том, что текущее значение по умолчанию, matching, может привести к тому, что неопытные пользователи начнут настаивать, когда некоторые ветки находятся за их удаленным эквивалентом, потому что ветки просто не обновлены. Конечным результатом является то, что они в конечном итоге перематывают ветку и потенциально теряют работу или чужой. Режим simple был введен как новое поведение push.default и станет стандартным в Git 2.0 (который, надеюсь, будет выпущен в начале следующего года).

Новое поведение simple во многом похоже на параметр upstream: он только толкает текущую ветвь, в которой вы сейчас находитесь, если у нее есть удаленная ветвь, которую он отслеживает. Он добавляет еще один дополнительный критерий: удаленная ветка должна иметь то же имя, что и локальная.

Как вы обнаружили, способ избавиться от сообщения - установить push.default. Чтобы получить новое поведение, используйте:

git config --global push.default simple

Чтобы получить поведение Git по умолчанию, но без предупреждения, используйте:

git config --global push.default matching

Я бы не советовал использовать сопоставление. В общем, большинство людей действительно хотят нового поведения simple или upstream.

Ответ 2

Обновить февраль 2016:

git 2.8 (март 2016 г.) удалено это большое предупреждающее сообщение.

См. commit 2f27520 (25 февраля 2016 г.) Matthieu Moy (moy).
(объединено Junio ​​C Hamano - gitster - в совершить 15be621, 26 февраля 2016 года)

push: удалить предупреждающее сообщение < <23 >

Предупреждение было важно перед переходом 2.0 и оставалось важным на некоторое время после этого, так что новые пользователи явно получают push.default в своей конфигурации и не испытывают непоследовательного поведения, если они когда-либо использовали более старую версию Git.

Предупреждение существует с версии 1.8.0 (октябрь 2012 г.), поэтому мы можем ожидайте, что подавляющее большинство существующих пользователей Git подверглись воздействию он, и большинство из них уже установили push.default явно. переход от "соответствия" к "простому" был запланирован на 2.0 (май 2014 года), но фактически произошло только для 2.3 (февраль 2015 г.).

Сегодня предупреждение чаще всего встречается новичками, которые не push.default (пока). Для многих из них предупреждение путают, потому что речь идет о концепциях, которые они не изучили и спрашивает у них выбор, который они еще не могут сделать. См. Например "Предупреждение: push.default не задано, его неявное значение меняется в Git 2.0" (1260 голосов за вопрос, 1824 за ответ от запись)

Удалите предупреждение полностью, чтобы не беспокоить начинающих. Люди, которые все еще иногда использовать более старую версию Git, будет предупреждение через эту старую версию.

В конце концов версии Git без предупреждения будут развернуты достаточно и учебные пособия больше не нуждаются в настройке push.default.


Оригинальный ответ (март 2014 года)

Это предупреждение скоро изменится в Git 2.0 (Q2 2014), зафиксировать 289ca27 и commit 11037ee:

push.default не установлен; его неявное значение изменилось в Git 2.0 от "соответствия" до "простого".
Чтобы подавить это сообщение и поддерживать поведение традиционного, используйте:

git config --global push.default matching\n"

Чтобы отменить это сообщение и принять новое поведение, используйте:

git config --global push.default simple\n"

Когда push.default установлено в 'matching', Git будет толкать локальные ветки к удаленным ветвям, которые уже существуют с тем же именем.

Поскольку Git 2.0, Git по умолчанию используется более консервативное поведение "simple", которое только толкает текущую ветвь к соответствующей удаленной ветке, которую использует "git pull" для обновления текущей ветки.

См. больше в разделе Почему нажатие соответствует стандарту в Git?".

Ответ 3

Я столкнулся с той же проблемой не раньше. Я решил это,

  • первый клонирование моей новой ветки (UAT)
  • затем нажав на эту ветку (UAT)