Dopo l'ultimo commit, ho modificato un mucchio di file nella mia copia di lavoro, ma voglio annullare le modifiche a uno di questi file, come resettare lo stesso stato del commit più recente.
Tuttavia, voglio solo annullare le modifiche della copia di lavoro di quel solo file, nient'altro con esso.
Come posso farlo?
Puoi usare
git checkout -- file
Puoi farlo senza il --
(come suggerito da nimrodm), ma se il nome del file sembra un ramo o un tag (o un altro identificatore di revisione), potrebbe confondersi, quindi usare --
è meglio.
Puoi anche controllare una particolare versione di un file:
git checkout v1.2.3 -- file # tag v1.2.3
git checkout stable -- file # stable branch
git checkout origin/master -- file # upstream master
git checkout HEAD -- file # the version from the most recent commit
git checkout HEAD^ -- file # the version before the most recent commit
Se volete semplicemente annullare i cambiamenti del commit precedente a quel file, potete provare questo:
git checkout branchname^ filename
Questo farà il checkout del file come era prima dell'ultimo commit. Se vuoi andare qualche altro commit indietro, usa la notazione branchname~n
.