¿Por qué el "git reset HEAD" no deshace mis cambios no comprometidos, sin etapas?
Anteriormente he podido deshacer los cambios a través de SourceTree realizando la función "Descartar", que bajo el capó produce este comando:
git -c diff.mnemonicprefix=false -c core.quotepath=false reset -q HEAD -- myproj.csproj
git -c diff.mnemonicprefix=false -c core.quotepath=false checkout HEAD -- myproj.csproj
De repente esto no funciona. Hago el descarte, no se produce ningún error, vuelve a ver la vista, pero los archivos siguen "modificados". Luego traté de hacer lo mismo en la línea de comandos con el siguiente resultado:
c:\myproject> git reset HEAD
Unstaged changes after reset:
M myproj.csproj
¿Por qué todavía se enumera como un cambio sin etapas?
He verificado que el archivo es de hecho escribible (ningún proceso está bloqueando)
actualizar
git checkout
tampoco funcionó:
C:\myproject>git checkout myproj.csproj
C:\myproject>git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: myproj.csproj
#
no changes added to commit (use "git add" and/or "git commit -a")
Actualización 2 También probé:
git checkout --
git checkout -- .
git checkout HEAD
, ninguno de los cuales resuelve mi problema
actualización 3 - un gran paso más cerca:
Resulta que cuando hago el pago, el .csproj se revierte a la versión correcta,pero La versión verificada usa un diferentecodificación de avance de línea. Mientras que la versión registrada tiene CR-LF (0D-0A) para el avance de línea, la salida solo tiene LF (0A). Por lo tanto, git cree que el archivo es diferente en cada línea. ¿Por qué esto?
actualización 4: Añadió la segunda línea de comandos git emitidos por SourceTree. No noté que la primera vez, por eso pensé.git reset HEAD
haría cualquier cosa Esto no cambia el hecho de que el problema subyacente todavía está relacionado con CR / LF (creo)
resumen Nunca encontré una solución al problema, pero la "resolví" comprobando el archivo. Mi pregunta original no contenía información de que SourceTree emitió los comandos correctos para revertir lo que quería, por lo que la mayoría de las respuestas aquí abordan ese problema. losreal El tema aún no está claro, pero mi teoría principal es que estaba relacionada con CR / LF.