2011-10-29 14 views

risposta

46

Prova git fetch --dry-run Il manuale (git help fetch) dice:

--dry-run 
Show what would be done, without making any changes. 
+2

Grazie! Comunque, è difficile capire dall'output quali file sono stati aggiunti/modificati/rimossi. –

+0

Si arriva a vedere quali tag vengono aggiornati e l'intervallo di commit start..end per i vari rami. Se questo non è sufficiente, fallo come un vero e proprio recupero (non in pull) che ti darà una copia locale corretta e separata del telecomando, senza intaccare il tuo ramo di lavoro. Un tiro tenterebbe di unire i due, che non è quello che vuoi. Il trasferimento dei dati è lo stesso sia che si esegua --dry-run oppure no. –

0

Questo è impossibile. Come si può sapere se il repository è "aggiornato" senza andare al repository remoto per vedere cosa significa "aggiornato"?

+2

Si prega di confermare che! Hai appena risposto cosa ne pensi! Dovresti stare più attento quando i neofiti crolleranno! –

+3

@AmanuelNega: questa è solo la logica di base. Se si desidera sapere se il repository locale si trova nello stesso stato del repository remoto, è necessario conoscere lo stato del repository remoto. Periodo. Se non si conosce lo stato del repository remoto, non è possibile sapere se il repository locale si trova nello stesso stato. Nota che la risposta più votata e accettata usa 'git pull', che l'OP proibisce esplicitamente nella sua domanda. –

+1

Tieniti aggiornato! 'git status -uno' funziona e si può anche usare' git show-branch * master' per vedere lo stato di tutti i rami master! Stai ancora dicendo che è impossibile?Puoi vedere lo stato di qualsiasi ramo purché tu abbia accesso al telecomando! –

5

Non proprio - ma non vedo come git fetch farebbe male perché non cambierà nessuno dei tuoi rami locali.

2

È necessario eseguire git fetch prima di poter confrontare la vostra repository locale contro i file sul server remoto.

Questo comando aggiorna solo i rami di monitoraggio remoto e non influenzerà il vostro albero di lavoro fino a quando non chiamate git merge o git pull.

Per vedere la differenza tra la filiale locale e la filiale di monitoraggio remoto una volta che hai recuperato è possibile utilizzare git diff or git cherry as explained here.

5

è possibile utilizzare git status -uno per controllare se la vostra filiale locale è up-to-date con l'origine uno .

+3

Fornisce solo lo stato locale, non il controllo con il ramo remoto. –

2

Un'altra alternativa è quella di visualizzare lo stato del ramo remoto utilizzando git show-branch remote/branch di usarlo come un confronto si poteva vedere git show-branch *branch per vedere la filiale di tutti i telecomandi, così come repository! controllare questa risposta per più https://stackoverflow.com/a/3278427/2711378

1

Avrai bisogno di emettere due comandi:

  1. git fetch origine
  2. git status
0

Usa

git pull 

Se la vostra il ramo è aggiornato riceverai il seguente messaggio:

"Già aggiornato."

2
git remote show origin 

Risultato:

HEAD branch: master 
    Remote branch: 
    master tracked 
    Local branch configured for 'git pull': 
    master merges with remote master 
    Local ref configured for 'git push': 
    master pushes to master (local out of date) <-------