Pregunta Advertencia: push.default no está configurado; su valor implícito está cambiando en Git 2.0


He estado usando Git por un tiempo y recientemente descargué una actualización solo para encontrar este mensaje de advertencia cuando intento 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

Obviamente puedo establecerlo en uno de los valores mencionados, pero ¿qué significan? Cuál es la diferencia entre simple y matching?

Si lo cambio en un cliente, ¿tendré que hacer algo con otros clientes con los que comparto los repos?


1574
2017-10-30 21:48


origen


Respuestas:


Se explica con gran detalle en los documentos, pero intentaré resumir:

  • matching medio git push será empujar a todas sus sucursales locales a los que tienen el mismo nombre en el control remoto. Esto hace que sea fácil presionar accidentalmente una rama que no pretendía.

  • simple medio git push será empujar solo la rama actual a la que git pull tiraría de, y también verifica que sus nombres coincidan. Este es un comportamiento más intuitivo, y es por eso que el valor predeterminado se cambia a esto.

Esta configuración solo afecta el comportamiento de su cliente local, y puede anularse especificando explícitamente qué ramas desea insertar en la línea de comando. Otros clientes pueden tener configuraciones diferentes, solo afecta lo que sucede cuando no se especifica qué ramas desea.


2119
2017-10-30 22:11



Me doy cuenta de que esta es una publicación anterior, pero como me encontré con el mismo problema y tuve problemas para encontrar la respuesta, pensé que agregaría un poco.

Entonces, la respuesta de @hammar es correcta. Utilizando push.default simple es, en cierto modo, como configurar el seguimiento en sus ramas para que no necesite especificar controles remotos y bifurcaciones al empujar y tirar. los matching La opción empujará todas las ramas a sus contrapartes correspondientes en el control remoto predeterminado (que es el primero que se configuró a menos que haya configurado su repositorio de lo contrario).

Una cosa que espero que otros encuentren útil en el futuro es que estaba ejecutando Git 1.8 en OS X Mountain Lion y nunca vi este error. La actualización a Mavericks es lo que repentinamente hizo que apareciera (ejecutándose git --version Mostrará git version 1.8.3.4 (Apple Git-47) que nunca había visto hasta la actualización del sistema operativo.


19
2017-10-26 17:00



Si recibes un mensaje de git quejándose del valor simple en la configuración, revise su git version.

Después de actualizar XCode (en un Mac corriendo Mountain Lion), que también se actualizó git de 1.7.4.4 a 1.8.3.4, los shells comenzaron antes de que la actualización siguiera ejecutando git 1.7.4.4 y se quejó sobre el valor simple para push.default en la configuración global.

La solución fue cerrar los caparazones ejecutando la versión anterior de git y usa la nueva versión!


7
2018-01-31 15:35



Me preguntaba por qué estaba recibiendo ese gran mensaje de advertencia en Ubuntu 16.04 (que viene con Git 2.7.4), pero no en Arch Linux. La razón es que la advertencia fue eliminada en Git 2.8 (Marzo de 2016):

A lo largo de la transición en torno a la versión 2.0 de Git, el usuario solía   recibe una advertencia bastante fuerte cuando ejecuta "git push" sin configurar   variable de configuración push.default. Ya no advertimos porque el   la transición se completó hace mucho tiempo.

Entonces, no verá la advertencia si tiene Git 2.8 y posterior y no necesita configurar push.default a menos que desee cambiar el valor predeterminado 'simple' comportamiento.


1
2018-03-19 13:10