2010-11-16 24 views
5

He realizado algunos cambios en un archivo específico en un repositorio, y he cometido esos cambios. Todo bajo un compromiso.Cambios de untage en Git a un archivo específico

En esa confirmación, también hice cambios en varios otros archivos. ¿Cómo puedo eliminar los cambios que realicé en ese un archivo específico y no todos los archivos que se modificaron en la confirmación?

+13

Si alguien realmente está buscando cómo "deshacer agregar", y no perder los cambios locales que se realizaron en el archivo, "git reset HEAD path/to/file.ext" es lo que hay que hacer. "git checkout" eliminará sus cambios locales sin compromiso al estado de la última confirmación. –

Respuesta

14

Unstage no es exactamente la derecha palabra aquí - que se refiere a eliminar cambios del índice (el área de ensayo), con la implicación de que no se han confirmado.

Dado que los cambios se han cometido, lo que estás preguntando cómo hacer es comprobar la versión del archivo de la confirmación anterior:

git checkout HEAD^ path/to/file 

HEAD es cometer la corriente, y es el primer HEAD^ padre de HEAD.

7

Si usted todavía no ha empujado el cometer cualquier lugar:

$ git checkout HEAD^ path/to/revert 

Esto restaurará el camino que quería volver al estado en que estaba tan de cometer el anterior. (Se revertirá los cambios realizados en la última confirmación que ha realizado.)

también se actualiza el índice, por lo que ahora sólo hay que modificar su cometen:

$ git commit --amend 
Cuestiones relacionadas