Vorrei sapere se il mio repository locale è aggiornato (e se no, idealmente, mi piacerebbe vedere le modifiche).Git: come verificare se un repository locale è aggiornato?
Come posso controllare questo senza fare git fetch
o git pull
?
Vorrei sapere se il mio repository locale è aggiornato (e se no, idealmente, mi piacerebbe vedere le modifiche).Git: come verificare se un repository locale è aggiornato?
Come posso controllare questo senza fare git fetch
o git pull
?
Prova git fetch --dry-run
Il manuale (git help fetch
) dice:
--dry-run
Show what would be done, without making any changes.
Questo è impossibile. Come si può sapere se il repository è "aggiornato" senza andare al repository remoto per vedere cosa significa "aggiornato"?
Si prega di confermare che! Hai appena risposto cosa ne pensi! Dovresti stare più attento quando i neofiti crolleranno! –
@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. –
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! –
Non proprio - ma non vedo come git fetch
farebbe male perché non cambierà nessuno dei tuoi rami locali.
È 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.
è possibile utilizzare git status -uno
per controllare se la vostra filiale locale è up-to-date con l'origine uno .
Fornisce solo lo stato locale, non il controllo con il ramo remoto. –
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
Avrai bisogno di emettere due comandi:
Usa
git pull
Se la vostra il ramo è aggiornato riceverai il seguente messaggio:
"Già aggiornato."
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) <-------
Grazie! Comunque, è difficile capire dall'output quali file sono stati aggiunti/modificati/rimossi. –
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. –