Tengo un repositorio que tiene dos archivos que supuestamente cambié localmente.
Así que estoy atrapado con esto:
$ 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 que todo el contenido del archivo ha cambiado, a pesar de que parece falso (parece haber rangos de línea comunes que diff parece no ver).
Curiosamente, no recuerdo haber cambiado estos archivos localmente. Este repositorio se usa con un repositorio remoto (privado, en GitHub.com, FWIW).
No importa lo que haya intentado, no puedo descartar estos cambios locales. He probado todos:
$ 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
En otras palabras, probé todo lo que se describe en ¿Cómo descarto los cambios sin etapas en Git? y mucho más. Pero los 2 archivos permanecen bloqueados como "cambiado pero no confirmado".
¿Qué diablos causaría que dos archivos se atasquen de esta manera y aparentemente "deshagan la tabla de reversión"?
PD En la lista anterior que muestra los comandos que ya había probado, escribí por error git revert
cuando quise decir git checkout
. Lo siento y gracias a aquellos de ustedes que respondieron que debería intentarlo checkout
. Edité la pregunta para corregirla. Definitivamente ya lo intenté checkout
.
git diff --ignore-space-change
ogit diff --ignore-all-space
hace una diferencia en la salida degit diff
?