2012-07-24 19 views
19

Anche se il titolo sembra simile a domande precedenti, non riuscivo a trovare la soluzione al al mio caso semplice:Come fare GIT ignorare le mie modifiche

  • mi sono impegnata a mio ramo 'ABCD': git commit -a .....
  • poi ha deciso di visitare un precedente commit così: git checkout 2387687326487
  • Qui ho fatto alcune modifiche che era solo a scopo di test, e non voglio tenerli
  • mi sono fatto, voglio tornare al mio ultimo impegno (di nuovo: ignorando le modifiche che ho apportato al vecchio commit): la virgola ND git checkout 'ABCD' dà l'errore:

Your local changes to the following files will be overwritten by checkout....please commit or stash...

mentre io non voglio commettere o riporre o qualsiasi altra cosa. Voglio solo tornare a casa :) cosa dovrei fare per favore?

+0

Ignorando, sembra voler dire "scartare in silenzio quando si cambia cassa o rami". Leggo correttamente la tua domanda?Ignorare ha un significato più specifico per me nel mondo del controllo delle fonti; in particolare: "escludi i file ignorati da questo (e/o futuro) commit (s)." –

risposta

21

Se si è certi che non si desidera mantenere le modifiche, la seguente riga farà:

git checkout -f 'ABCD' 

opzione '-f' sta per forza.

9

Per annullare le modifiche locali e tornare allo stato da voi commit può:

git reset --hard 
40

Utilizzando solo

git checkout . 

scarterà tutte le modifiche non salvate nella directory corrente (il punto significa corrente directory).

EDIT in risposta a @GokulNK:

Se si desidera mantenere questi cambiamenti per un uso futuro, hai 2 opzioni:

  • git stash: questo farà risparmiare quei cambiamenti in una pila. È possibile applicare le modifiche alla vostra copia di lavoro in seguito utilizzando git stash pop
  • git diff > changes.patch: Ciò farà risparmiare le modifiche al file changes.patch. Se vuoi applicarli alla tua copia di lavoro puoi farlo: git apply changes.patch.
+0

Opzione più semplice! Grazie – Dinaiz

+0

C'è un modo per salvare le modifiche in un file prima di fare il checkout git. –

+0

@GokulNK vedere la modifica –

7

A parte le soluzioni di cui si possono spostare i cambiamenti

git stash 

Checkout vostra filiale

git checkout 'ABCD' 

E alla fine, quando si è certi che non avete bisogno di qualcosa dal Stashed modifiche, e hanno controllato due volte con gitk o gitg, buttare via la scorta:

git stash drop 

Questo è il mio modo preferito, in quanto è più sicuro.

+0

Questo è il modo in cui lo faccio anch'io, modo sicuro – triswill227

Problemi correlati