Pregunta ¿Cómo elimino un solo archivo del área de ensayo de Git pero no lo elimino del índice ni deshago los cambios en el archivo en sí?


Situación: Tengo un repositorio de Git con archivos que ya están en el índice. Realizo cambios en varios archivos, abro Git y agrego estos archivos a mi área de ensayo con "git add".

Pregunta: ¿Cómo elimino uno de esos archivos del área de preparación pero no lo elimino del índice ni deshago los cambios en el archivo en sí?


962
2017-10-01 19:24


origen


Respuestas:


Si entiendo la pregunta correctamente, simplemente quiere "deshacer" el git add eso fue hecho para ese archivo.

Si necesita eliminar un fila india desde el área de ensayo, use

git reset HEAD -- <file>

Si necesita eliminar un directorio completo (carpeta) desde el área de ensayo, use

git reset HEAD -- <directoryName>

Sus modificaciones se mantendrán. Cuando corres git status el archivo volverá a aparecer como modificado pero aún no organizado.

Ver el git reset página man para detalles.


1495
2017-10-01 19:29



git rm --cached FILE

,

git rm -r --cached CVS */CVS

137
2018-05-07 12:25



git reset <file>

Funciona ya sea que tengas compromisos previos o no.


77
2017-08-13 04:20



Entonces, un ligero ajuste a la respuesta de Tim Henigan: debe usar - antes del nombre del archivo. Se vería así:

git reset HEAD -- <file>

48
2018-02-21 16:55



git reset filename.txt

Si tiene una modificación en filename.txt, la agregó al escenario por error y desea eliminar el archivo de la etapa pero no desea perder los cambios.


6
2018-03-20 10:53



Si desea eliminar archivos siguiendo un patrón determinado y está utilizando git rm --cached, también puedes usar patrones de archivo-glob.

Ver aquí.


5
2018-01-04 09:21



En caso de que solo desee eliminar un subconjunto de los cambios en su archivo, puede usar:

git reset -p

o

git reset -p <file_name>

Este comando es básicamente el reverso de git add -p: solo eliminará los cambios seleccionados del área de preparación. Me parece extremadamente útil para "dejar de usar" algo que agregué por error.


5
2018-02-17 22:13



Usted quiere:

  • Afectar a un solo archivo

  • Eliminar archivo del área de ensayo

  • No eliminar un solo archivo del índice

  • No deshacer el cambio en sí

y la solución es

git reset HEAD file_name.ext

o

git reset HEAD path/to/file/file_name.ext

2
2017-10-31 09:33



Cuando tu lo hagas git status, Git te dice cómo desestabilizar:

Changes to be committed: (use "git reset HEAD <file>..." to unstage).

Asi que git reset HEAD <file> funcionó para mí y los cambios no fueron tocados.


1
2018-05-08 01:19