¿Cómo elimino un solo file del área de transición de Git pero no lo elimino del índice ni deshago los cambios en el file mismo?

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

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

Si entiendo la pregunta correctamente, simplemente quiere "deshacer" la git add que se hizo para ese file.

Si ese es el caso, entonces git reset HEAD -- <file> hará el trabajo. Si necesita eliminar un directory completo (carpeta) del área de ensayo use

git reset HEAD -- <directoryName>

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

Consulte la página man de git reset para más detalles.

 git rm --cached FILE 

,

 git rm -r --cached CVS */CVS 

git reset <file>

Funciona ya sea que tengas compromisos previos o no.

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

 git reset HEAD -- <file> 

Si desea eliminar files siguiendo un patrón determinado y está usando git rm --cached , también puede usar patrones de file git rm --cached .

Mira aquí .

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

 git reset -p 

o

 git reset -p <file_name> 

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

Debe estar en el directory del file y luego escribir lo siguiente en la terminal

 git reset HEAD . 

Se supone que necesita restablecer un solo file.

Usted quiere:

  • Afectar a un solo file

  • Eliminar file del área de ensayo

  • No eliminar un solo file 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 

Para dejar de grabar todo a la vez, ejecuta este command

 git reset HEAD -- . 

git checkout -- <file>

Funciona perfectamente para eliminar files del Área de preparación

En mi caso, lo hago

 git checkout -- FILE