2010-11-19 10 views
5

Esto es frustrante y simplemente no puedo encontrar la respuesta correcta sobre cómo manejar esto. Estoy buscando una rebase [pero este es solo uno de muchos escenarios en los que se produce este problema] y tengo un montón de archivos "cambiados pero no actualizados" que no tienen ninguna diferencia excepto para los caracteres de nueva línea.¿Cómo eliminar cambios no registrados [diferencia de caracteres de nueva línea] en git?

git diff -b 

nada regresó.

Ahora solo quiero eliminar los cambios y dejar los archivos tal como están en el repositorio. que he encontrado un montón de "soluciones":

1 stashing cambios
a) con --keep-index [esto era en realidad de SO]

$ git stash save --keep-index 
Saved working directory and index state WIP on COM-23: 4a8abc1 COM-23 changed pa 
ckage name 
HEAD is now at 4a8abc1 COM-23 changed package name 

$ git stash drop 
Dropped refs/[email protected]{0} (7d822e3c6bdc310f4a4be90ed937dd0ea97df627) 

$ git status 
[tons of files marked as changed but not updated] 

b) sin --keep-index
exactamente lo mismo que con 'a'

2 git restablecer
a) sólo un reinicio

git reset --hard HEAD 

mismo que el anterior

b) con añadir

git add -A 
git reset --hard HEAD 

mismo que el anterior

3 checkout

git checkout 

mismo que el anterior, el estado devuelve una gran cantidad de archivos unstaged.

Estoy bastante seguro de que estoy haciendo algo mal o simplemente estoy malinterpretando el problema, ¡pero todo lo que quiero hacer es deshacerme de los cambios no registrados! ¿Cómo puedo hacer eso?

Gracias, Krystian

+4

Salida 'core.autocrlf' git config. Lo mejor es configurarlo en 'false'. Es posible que aún necesites un 'git reset --hard' después de cambiar ese valor, porque tienes que sincronizar las configuraciones de las nuevas líneas de tu editor con las de Git. –

+0

¡Eso es todo! Póngalo como una respuesta y lo marcaré felizmente, ya que creo que no soy el único que tiene roto ese elemento de configuración. – Krystian

+0

hecho. Me alegro de poder ayudar. –

Respuesta

9

Echa un vistazo a git config [--global] core.autocrlf. Lo mejor es configurarlo en false. Es posible que aún necesite un git reset --hard después de cambiar ese valor, porque debe sincronizar las configuraciones de las nuevas líneas de su editor con las de Git.

0

Utilice git stash cuando desee registrar el estado actual del directorio de trabajo y el índice, pero desee volver a un directorio de trabajo limpio. El comando guarda sus modificaciones locales y revierte el directorio de trabajo para que coincida con la confirmación HEAD.

Hazlo de esta manera.

git stash save --keep-index 

y si quieres eliminar esta cambia por completo a continuación, colocar el alijo

git stash drop 
Cuestiones relacionadas