Попередження: push.default не встановлено; її неявна цінність змінюється в Git 2.0


1623

Я вже деякий час використовую 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
Примітка: git 2.8 (березень 2016 року) видалить це попередження! Див stackoverflow.com/a/22356644/6309
VonC

Відповіді:


2148

Це докладно пояснено в документах , але я спробую підсумувати:

  • matchingкошти git pushбудуть штовхати всі свої місцеві відділення в тих з такою ж назвою на пульті дистанційного керування. Це дозволяє легко випадково натиснути гілку, якої ви не мали наміру.

  • simpleзасіб git pushбуде штовхати тільки поточну гілку тієї , яка git pullбуде тягнути з , а також перевіряє , що їх імена відповідають. Це більш інтуїтивно зрозуміла поведінка, через що за замовчуванням це змінюється.

Цей параметр впливає лише на поведінку вашого локального клієнта, і його можна перекрити, чітко вказавши, які гілки потрібно натиснути в командному рядку. Інші клієнти можуть мати різні налаштування, це впливає лише на те, що відбувається, коли ви не вкажете, які гілки ви хочете натиснути .


16
Радий знати цю зміну. Коли я з'явився новин, я випадково підштовхнув усі місцеві гілки, думаючи git push, що підштовхне лише поточну гілку.
rahul286

51
Мотив полягає в тому, що, емпірично, більшість очікує нової поведінки за замовчуванням
Блейк Міллер

125
Було б набагато краще мати своє дивовижно чітке резюме в самому попереджувальному повідомленні, а не інструкцію, що дозволяє нам відкривати документацію та шукати рядок.
hertzsprung

116
"Це пояснюється дуже чітко в документах" Звичайно, це якщо ви опинитесь на потрібній сторінці, проте в посібнику з git push навіть немає згадки про слово просто. Це, мабуть, хто замість цього потрапив так багато людей .
Геррі

36
Резюме hammar є набагато більш стислим поясненням, ніж документи git.
AJ.

19

Я усвідомлюю, що це стара публікація, але, як тільки я зіткнувся з тим же питанням і у мене виникли проблеми з пошуку відповіді, я подумав, що трохи додам.

Тож відповідь @ Hammar правильна. Використання push.default simple, таким чином, як налаштування відстеження на ваших гілках, тому вам не потрібно вказувати віддалені та гілки під час натискання та витягування. matchingВаріант буде штовхати всі гілки їх відповідних аналоги за замовчуванням віддаленої (який є першим, який був створений , якщо ви не налаштували ваше сховище в іншому випадку).

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


2
Я також почав бачити це після переходу до Mavericks. Тож я здогадуюсь, що Git був модернізований одночасно з Mavericks, як ви це маєте на увазі.
Пер Лундберг

8

Якщо ви отримуєте повідомлення від 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та використовувати нову версію!


13
Я використовую нову інсталяцію Xcode (git - версія 1.8.5.2), і я все ще мав цю помилку, поки не запустив:git config --global push.default simple
Sam-Graham

2

Мені було цікаво, чому я отримую таке велике попереджувальне повідомлення на 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'поведінку за замовчуванням .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.