tag repositorio eliminar deshacer borrar archivo git staging

repositorio - deshacer commit git



¿Cómo elimino un solo archivo del área de preparación de Git pero no lo elimino del índice o deshago los cambios en el archivo? (14)

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 preparación con "git add".

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


Cuando haces el git status , Git te dice cómo deshacer el escenario:

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

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


Debe estar en el directorio del archivo y luego escribir lo siguiente en el terminal

git reset HEAD .

El supuesto es que necesita restablecer un solo archivo.


En caso de que solo quiera 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 lo contrario de git add -p : solo eliminará los cambios seleccionados del área de preparación. Me parece extremadamente útil para "agregar" algo que agregué por error.


En mi caso, lo hago.

git checkout -- FILE


Para desarticular todo a la vez, ejecute este comando.

git reset HEAD -- .


Por lo tanto, un pequeño ajuste a la respuesta de Tim Henigan: debe usar - antes del nombre del archivo. Se vería así:

git reset HEAD -- <file>


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

Ver here


Si realiza cambios en muchos archivos rastreados pero solo desea poner en escena algunos de ellos, realice una

git add .

no siempre es favorable (o recomendado), ya que escalona todos los archivos rastreados (algunos casos en los que desea mantener los cambios solo para usted y no quiere colocarlos en el repositorio remoto).

ni es ideal hacer un montón de

git add path/to/file1 path/to/file2

Si tiene muchos directorios anidados (como es el caso en la mayoría de los proyectos), se vuelve molesto

Ahí es cuando Git GUI es útil (probablemente solo la vez que lo uso). Simplemente abra la GUI de Git, se muestran secciones de archivos en etapas y sin etapas. Seleccione los archivos de la sección preparada que desea eliminar y presione

Ctrl+U (para ventanas)

para desmarcarlos.


Usted quiere:

  • Afectar a un solo archivo

  • Eliminar archivo del área de preparación

  • No eliminar un solo archivo del índice

  • No deshagas el cambio en sí mismo.

y la solución es

git reset HEAD file_name.ext

o

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


git checkout -- <file>

Funciona perfectamente para eliminar archivos del área de ensayo


git reset <file>

Funciona si tienes o no alguna confirmación previa.


Si entiendo la pregunta correctamente, simplemente desea "deshacer" el git add que se realizó para ese archivo.

Si necesita eliminar un solo archivo del área de preparación, utilice

git reset HEAD -- <file>

Si necesita eliminar un directorio completo (carpeta) del área de preparación, use

git reset HEAD -- <directoryName>

Sus modificaciones se mantendrán. Cuando ejecute el git status el archivo volverá a aparecer como modificado, pero aún no está en escena.

Vea la página del manual de git reset para más detalles.


git reset filename.txt

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


git rm --cached FILE

,

git rm -r --cached CVS */CVS