2011-10-21 14 views
27

come eliminare le modifiche alle branch locali di git? ad esempio, filiale locale con la versione: A-> B-> C Ora sono in versione A, ed ha alcune modifiche in conflitto con la versione più recente C. voglio annullare le modifiche locali e tirare l'ultima versione C.come eliminare le modifiche alle branch locali di git?

$ git pull 

Incontrerò qualche errore. e ci sono molti file, quindi non ho bisogno di fare molte volte $ git co files

C'è un modo migliore?

risposta

54

Se si dispone di modifiche non che si desidera scartare, utilizzare questo:

$ git reset --hard 

che equivale a

$ git reset --hard HEAD 

Questo rimuove tutte le modifiche non locali. Se vuoi rimuovere alcuni commit offensivi dalla tua filiale locale, prova a riavvolgerlo:

$ git reset --hard HEAD^ #moves HEAD back by one commit 

o ad es.

$ git reset --hard HEAD~3 #moves HEAD back by 3 commits 

Utilizzare questi con cautela, poiché non sarà possibile annullare queste operazioni. Una volta completata la pulizia della filiale locale, utilizzare git pull per ottenere l'ultimo codice.

+0

Se si è già spinto la vostra filiale a un server remoto è necessario essere attenti a riarmo --hard come si può rovinare la storia. –

+0

Questo non elimina i file non salvati. Dovresti eliminare questi file manualmente. –

0

Hai già commesso le modifiche locali? Se non è un git azzerato HEAD --hard dovrebbe fare il trucco

+0

È inoltre possibile annullare le modifiche apportate localmente, vedere la soluzione di ayoy. – jli

19
git fetch 
git reset --hard origin/master 
+0

'git reset --hard origin/master' è esattamente quello che stavo cercando! – mystarrocks

+0

questo presuppone che tu abbia effettuato il check-in al telecomando ad un certo punto, lo stesso vale per i repository locali? posso fare 'git reset --hard otherLocalBranch' per lo stesso effetto? –

+0

Questo è esattamente quello che stavo cercando per scartare i commit che ho tirato da un altro ramo per errore. Grazie a @Onlyjob –

Problemi correlati