Borrar caché local de git

92

Tengo un proyecto de Webstorm que estaba a punto de confirmar, pero antes de presionar el botón de confirmación en la GUI de Windows de Git, recordé que no quiero confirmar el .ideacontenido de mi carpeta.

Entonces utilicé el sitio web que genera automáticamente .gitignorespara ciertos IDE y lo agregué a mi .gitignorearchivo.

Todos los .ideaarchivos que se ignoran explícitamente siguen apareciendo para confirmar, a pesar de que eliminé y volví a agregar los archivos en cuestión.

También comprometí el archivo gitignore sin ningún otro archivo y volví a pegar mi contenido, pero todavía no ignora los archivos .idea.

¿Cómo le digo a Git que actualice o borre su caché?
Intenté / cd en el directorio en cuestión y escribí

git clean -n

pero no aparecen archivos.

jozenbasin
fuente

Respuestas:

120

Todos los archivos .idea que se ignoran explícitamente siguen apareciendo para confirmar

tienes que sacarlos del área de preparación

git rm --cached .idea

ahora tienes que confirmar esos cambios y serán ignorados a partir de este momento.
Una vez que git comience a rastrear los cambios, no "dejará" de rastrearlos incluso si se agregaron al .gitignorearchivo más adelante.

Usted debe eliminar de forma explícita y luego confirme su eliminación de forma manual con el fin de ignorar completamente.


ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

CodeWizard
fuente
3
Sin embargo, nunca confirmo los archivos que intento ignorar ... Esto me dicefatal: pathspec '.idea' did not match any files
jozenbasin
Cuando escribes git status, ¿los ves? WebStorm podría haberlos agregado por usted si marcó la casilla de verificación para agregar archivos automáticamente
CodeWizard
2
No tengo idea, pero parece que el comando que me diste funcionó, aunque devolvió un error fatal ... Los archivos ya no aparecen para confirmar.
jozenbasin
podría considerar agregar -rpara eliminación recursiva
Vishrant
79

Cuando crea que su git está en mal estado, puede usar este comando para actualizar todo.

git rm -r --cached .
git add .
git commit -am 'git cache cleared'
git push

Además, para revertir la última confirmación, use esto:

git reset HEAD^ --hard
Kamal Kumar
fuente
6
No use git push si no desea enviar cambios al control remoto. Sin embargo, si lo hizo, vaya a la pestaña de control de versiones en la parte inferior del estudio de Android, haga clic con el botón derecho en el compromiso anterior y elija "Restablecer la rama actual aquí"
Swapnil
la parte de reinicio fue, en el mejor de los casos, confusa. pero hice hasta 'git push', y estaba bien.
Seun S. Lawal
6

si realiza algún cambio en git ignore, entonces también debe borrar su caché de git

> git rm -r --cached . 
> git add . 
> git commit -m 'git cache cleared'
> git push

si desea eliminar cualquier carpeta o archivo en particular,

git rm  --cached filepath/foldername
Akshay Kumar
fuente
3
git rm --cached *.FileExtension

Esto debe ignorar todos los archivos de esta extensión.

Allan Ferraz
fuente
3

después de ese cambio en el archivo git-ignore, ejecute este comando, este comando eliminará todo el caché de archivos, no los archivos o cambios

git rm -r --cached.

después de la ejecución de este comando confirme los archivos

para eliminar un solo archivo o carpeta de la caché, use este comando

git rm - ruta de archivo en caché / nombre de carpeta

Akshay
fuente
2

Para eliminar el directorio .idea / en caché. p.ejgit rm -r --cached .idea

Max Droid
fuente