Ho un repository che ha due file che presumibilmente ho cambiato localmente.
Quindi sono bloccato con questo:
$ git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: dir1/foo.aspx
# modified: dir2/foo.aspx
#
no changes added to commit (use "git add" and/or "git commit -a")
Doing git diff
dice che l'intero contenuto del file è cambiato, anche se dall'occhio sembra falso (sembrano esserci intervalli di linee comuni che diff sembra non riuscire a vedere).
È interessante notare che non ricordo di aver cambiato questi file localmente. Questo repository viene utilizzato con un repository remoto (privato, su GitHub.com, FWIW).
Non importa cosa ho provato, non posso annullare queste modifiche locali. Ho provato tutto:
$ git checkout -- .
$ git checkout -f
$ git checkout -- dir1/checkout_receipt.aspx
$ git reset --hard HEAD
$ git stash save --keep-index && git stash drop
$ git checkout-index -a -f
In altre parole ho provato tutto quanto descritto in Come faccio a eliminare le modifiche non organizzate in Git? e altro ancora. Ma i 2 file rimangono bloccati come "modificati ma non salvati".
Cosa diavolo potrebbe causare il blocco di due file in questo modo e apparentemente "un-revert-table" ??
PS Nell'elenco sopra che mostra i comandi che avevo già provato, ho scritto erroneamente git revert
quando intendevo git checkout
. Mi dispiace e grazie a quelli di voi che mi hanno risposto che avrei dovuto provare checkout
. Ho modificato la domanda per correggerla. Sicuramente ho già provato checkout
.
git diff --ignore-space-change
ogit diff --ignore-all-space
fa differenza nell'output digit diff
?