2011-09-29 8 views
21

Intento eliminar los archivos innecesarios del repositorio de git. Los archivos se agregaron inicialmente y ahora están en varias sucursales. Lo que quiero es simplemente dejar de rastrear los cambios en esos archivos, no me importa qué cambios deberían permanecer allí, pero necesito que los archivos permanezcan en el sistema de archivos.git eliminar el archivo del repositorio pero dejarlo en el sistema de archivos

me trataron siguiente

git filter-branch --index-filter "git rm --cached --ignore-unmatch file_to_remove" HEAD 

pero ese archivo eliminado del sistema de archivos lo que es indeseable.

+1

lo general copiar los archivos en algún lugar antes de ejecutar ese comando. Después de que git los elimina, los agrego a .gitignore y luego vuelvo a mover las copias. –

+0

Hmm, buen truco. No lo he pensado –

+1

@misha ¿Desea dejar de seguirlos o eliminarlos por completo del repositorio? Usted dice una cosa en su pregunta y otra en un comentario. – Andy

Respuesta

27

Justo:

git rm --cached file [file ...] 

Por supuesto que necesita para asegurarse de que los archivos involucrados se añaden a su .gitignore por lo que no se les reiteraron enseguida

+1

Quiero eliminarlos completamente del repositorio de todas las ramas. Cuando hago lo que dice, el archivo deja de ser rastreado, pero no puedo cambiar de rama, git dice 'Se requiere combinación de nivel de archivo. Permanezca en la rama '. –

2

Si desea mantener el archivo en el repositorio, puede utilizar:
git update-index --assume-unchanged <fileName>

Esto mantiene la versión actual del archivo en el índice, pero se puede cambiar todo lo que quiera y no hará caso de los git cha nges.

+0

He encontrado que su enfoque es bueno solo como una solución ** temporal **. No podrá verificar otra rama en la que el contenido del archivo sea diferente al de la rama actual. –

0

Pagar y ejecutar git clean para cada rama.

git-limpia - Eliminar los archivos sin seguimiento del árbol de trabajo

limpia el árbol de trabajo, eliminando de forma recursiva archivos que no están bajo el control de versiones, a partir del directorio actual.

https://git-scm.com/docs/git-clean

Cuestiones relacionadas