2013-07-11 16 views
11

Ho voluto annullare tutte le modifiche locali conChe cosa significa "git checkout -." fare?

git checkout -- . 

ma accidentalmente ha fatto

git checkout - . 

e ha fatto un sacco di modifiche locali che non riesco a capire a tutti.

Cosa fa il secondo comando ed è possibile ripristinare ciò che è stato fatto?

+0

Se fa qualcosa, è un bug ... non riesce a scoprire come può accadere durante la lettura di http://www.git-scm.com/docs/git-checkout – CharlesB

+0

Il singolo - sarebbe ignorato. – Layke

+0

'git checkout .' (senza trattini) funziona per me bene. – balki

risposta

10

git checkout - controlla il ramo estratto in precedenza. Quindi suppongo che git checkout - . sostituirà il contenuto della copia di lavoro con il contenuto del ramo estratto in precedenza.

Non è possibile annullare, ma dal momento che si voleva ripristinare il contenuto della directory di lavoro in ogni modo, perché non basta eseguire git checkout -- .?

In futuro è possibile utilizzare git reset --hard per annullare tutte le modifiche rispetto al ramo corrente. Reimposta anche l'indice.