software control commands best git version-control

commands - git version control cpanel



Advertencia: push.default está desarmado; Su valor implícito está cambiando en Git 2.0. (4)

He estado usando Git por un tiempo y recientemente he descargado una actualización solo para encontrar que aparece 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 en otros clientes con los que comparto los repositorios?


Me doy cuenta de que este es un post antiguo, pero como acabo de encontrarme con el mismo problema y tuve problemas para encontrar la respuesta, pensé que agregaría un poco.

Así que la respuesta de @ Hammar es correcta. El uso de push.default simple es, en cierto modo, como configurar el seguimiento en sus sucursales para que no tenga que especificar controles remotos y sucursales al empujar y tirar. La opción de matching 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. Actualizar a Mavericks es lo que de repente lo hizo aparecer (ejecutar git --version mostrará git version 1.8.3.4 (Apple Git-47) que nunca había visto hasta la actualización del sistema operativo.


Me preguntaba por qué recibía ese gran mensaje de advertencia en Ubuntu 16.04 (que viene con Git 2.7.4), pero no en Arch Linux. El motivo es que la advertencia se eliminó en Git 2.8 (marzo de 2016):

A lo largo de la transición alrededor de la versión 2.0 de Git, el usuario solía recibir una advertencia bastante fuerte al ejecutar "git push" sin configurar la variable de configuración push.default. Ya no avisamos porque la transición se completó hace mucho tiempo.

Por lo tanto, no verá la advertencia si tiene Git 2.8 y versiones posteriores y no necesita configurar push.default menos que desee cambiar el comportamiento predeterminado ''simple'' .


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

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

  • simple significa que git push empujará solo la rama actual a la que git pull sacaría , y también verifica que sus nombres coincidan. Este es un comportamiento más intuitivo, por lo que la configuración predeterminada se está modificando.

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


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

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

¡La solución fue cerrar los shells que ejecutan la versión antigua de git y usar la nueva versión!