¿Cómo eliminar un archivo del índice (= área de preparación = caché) sin eliminarlo del sistema de archivos?
¿Cómo eliminar un archivo del índice (= área de preparación = caché) sin eliminarlo del sistema de archivos?
Respuestas:
Usted quiere:
git rm --cached [file]
Si omite la --cached
opción, también la eliminará del árbol de trabajo. git rm
es un poco más seguro que git reset
, porque se le advertirá si el contenido en escena no coincide con la punta de la rama o el archivo en el disco. (Si no es así, debe agregarlo --force
).
git rm --cached
para eliminarlos del repositorio, agregue los archivos o directorios relevantes a .gitignore, organice y confirme normalmente. Se habrán ido del repositorio pero permanecerán intactos en su árbol local, y no los volverá a registrar accidentalmente.
Esto debería mostrar un <archivo> para usted (sin eliminar o modificar el archivo):
git reset <file>
HEAD
.
HEAD
!
git reset HEAD <file>
para eliminar un archivo particular del índice.
y
git reset HEAD
para eliminar todos los archivos indexados.
Dependiendo de su flujo de trabajo, este puede ser el tipo de cosas que rara vez necesita lo suficiente como para que tenga poco sentido tratar de encontrar una solución de línea de comandos (a menos que esté trabajando sin una interfaz gráfica por alguna razón).
Simplemente use una de las herramientas basadas en GUI que admiten la administración de índices, por ejemplo:
git gui
<- utiliza el marco de ventanas Tk - estilo similar a gitk
git cola
<- una interfaz GUI más modernaEstos le permiten mover archivos dentro y fuera del índice con solo apuntar y hacer clic. Incluso tienen soporte para seleccionar y mover partes de un archivo (cambios individuales) hacia y desde el índice.
¿Qué tal una perspectiva diferente? Si te equivocas mientras usas uno de los comandos sugeridos, más bien crípticos:
git rm --cached [file]
git reset HEAD <file>
... tiene una posibilidad real de perder datos, o al menos hacer que sea difícil de encontrar. A menos que realmente necesite hacer esto con una frecuencia muy alta, es probable que usar una herramienta GUI sea más seguro .
Según los comentarios y votos, me he dado cuenta de que mucha gente usa el índice todo el tiempo. Yo no. Así es cómo:
git commit -a
git commit (list of files)
git commit -a
a continuación, modificar a travésgit gui
git difftool --dir-diff --tool=meld
git commit -a
. Cuando estaba respondiendo a esta pregunta, fue porque había hecho (una exótica) " selección inversa de cereza " que pone los archivos en el índice para usted, pero quería editar un archivo antes de comprometerme. Saqué el archivo del índice mientras lo editaba para que las diferencias funcionen de la manera en que estoy acostumbrado.
rm
inmediato, pero primero pensé que cambiar las ramas no eliminaría la carpeta ignorada . pero ... utilizo la herramienta "gui" de github que es lo suficientemente buena para mí y sí soporto algo de gestión de índices, excepto que no es compatible con esto. Entonces, ¿qué debo usar 2 gui para un uso limitado? Todavía no puedo estar de acuerdo con la respuesta.