Attenzione: push.default non è impostato; il suo valore implicito sta cambiando in Git 2.0


1624

Sto usando Git da un po 'di tempo e recentemente ho scaricato un aggiornamento solo per trovare questo messaggio di avviso quando provo a farlo 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

Posso ovviamente impostarlo su uno dei valori menzionati, ma cosa significano? Qual è la differenza trasimple e matching?

Se lo cambio su un client dovrò fare qualcosa su altri client con cui condivido i repository?




1
Nota: git 2.8 (marzo 2016) rimuoverà quell'avvertimento! Vedere stackoverflow.com/a/22356644/6309
VonC

Risposte:


2149

È spiegato in dettaglio nei documenti , ma proverò a riassumere:

  • matchingsignifica git pushche spingerà tutte le filiali locali verso quelle con lo stesso nome sul telecomando. Questo rende facile spingere accidentalmente un ramo che non avevi intenzione di fare.

  • simple si intende git push che spingerà solo il ramo corrente a quello da cui git pullestrarrebbe , e controlla anche che i loro nomi corrispondano. Questo è un comportamento più intuitivo, motivo per cui l'impostazione predefinita viene modificata in questo.

Questa impostazione influisce solo sul comportamento del client locale e può essere ignorata specificando esplicitamente quali rami si desidera inviare sulla riga di comando. Altri client possono avere impostazioni diverse, influisce solo su ciò che accade quando non si specifica quali rami si desidera spingere .


16
Sono contento di sapere questo cambiamento. Quando ero nuovo di git ho spinto accidentalmente tutti i rami locali pensando git pushche spingerà solo il ramo attuale.
rahul286,

51
Il motivo è che, empiricamente, la maggior parte si aspetta il nuovo comportamento predefinito
Blake Miller,

125
Sarebbe molto meglio avere il tuo sommario meravigliosamente chiaro nel messaggio di avviso stesso, piuttosto che le istruzioni che ci dicono di aprire la documentazione e cercare una stringa.
hertzsprung,

116
"È spiegato molto chiaramente nei documenti" Certo che lo fai se finisci nella pagina giusta, tuttavia il manuale di git push non ha nemmeno una menzione della parola semplice , che è probabilmente chi invece sono finiti così tante persone qui .
Gerry,

36
Il sommario di Hammar è una spiegazione molto più concisa dei documenti git.
AJ.

19

Mi rendo conto che questo è un vecchio post ma dato che ho riscontrato lo stesso problema e ho avuto problemi a trovare la risposta, ho pensato di aggiungere un po '.

Quindi la risposta di @ hammar è corretta. L'uso push.default simpleè, in un certo senso, come la configurazione del tracciamento sui rami in modo da non dover specificare telecomandi e rami quando si spinge e si tira. L' matchingopzione spingerà tutti i rami verso le loro controparti corrispondenti sul telecomando predefinito (che è il primo che è stato impostato a meno che tu non abbia configurato il tuo repository altrimenti).

Una cosa che spero che altri possano trovare utile in futuro è che stavo eseguendo Git 1.8 su OS X Mountain Lion e non ho mai visto questo errore. L'aggiornamento a Mavericks è ciò che improvvisamente lo ha fatto apparire (l'esecuzione git --versionmostrerà git version 1.8.3.4 (Apple Git-47)che non avevo mai visto fino all'aggiornamento del sistema operativo.


2
Ho anche iniziato a vedere questo dopo l'aggiornamento a Mavericks. Quindi immagino che Git sia stato aggiornato contemporaneamente a Mavericks, come tu intendi.
Per Lundberg,

8

Se ricevi un messaggio da Git che si lamenta del valore simplenella configurazione, controlla il tuo git version.

Dopo l'aggiornamento XCode(in Macesecuzione Mountain Lion), anch'esso aggiornato gitda 1.7.4.4 a 1.8.3.4 , le shell sono iniziate prima che l'aggiornamento eseguisse ancora git 1.7.4.4 e si sono lamentati del valoresimple di push.default nella configurazione globale.

La soluzione era chiudere le shell che eseguivano la vecchia versione gite usare la nuova versione!


13
Sto usando una nuova installazione di Xcode (git è la versione 1.8.5.2) e continuavo ad avere questo errore fino a quando non ho eseguito:git config --global push.default simple
Sam-Graham

2

Mi chiedevo perché stavo ricevendo quel grosso messaggio di avviso su Ubuntu 16.04 (che viene fornito con Git 2.7.4), ma non su Arch Linux. Il motivo è che l'avviso è stato rimosso in Git 2.8 (marzo 2016):

Attraverso la transizione intorno a Git versione 2.0, l'utente riceveva un avviso piuttosto forte quando eseguiva "git push" senza impostare la variabile di configurazione push.default. Non avvertiamo più perché la transizione è stata completata molto tempo fa.

Quindi non vedrai l'avvertimento se hai Git 2.8 e versioni successive e non hai bisogno di impostare push.default meno che tu non voglia cambiare il 'simple'comportamento predefinito .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.