¿Ignorar el contenido de un directorio ya registrado?

Resuelto Felixyz asked hace 15 años • 6 respuestas

Tengo un repositorio git que se usa solo para guardar archivos de gráficos y sonido utilizados en varios proyectos. Todos están en un directorio sin subdirectorios. Ahora acabo de crear un script para copiar estos recursos desde otro directorio estructurado, con varios niveles de subdirectorios.

Ahora solo quiero que git rastree la estructura jerárquica del archivo (de origen), y se debe ignorar el directorio plano (de destino) (con todos los archivos en una pila).

Agregué el directorio de destino a .gitignore, pero git todavía está rastreando los cambios en él. Pensé que si confirmaba la eliminación del archivo antiguo en el directorio de destino, git podría dejar de rastrear el nuevo contenido (copiado por el script), pero no es así.

¿Cómo hago para que git se olvide del directorio de destino?

Felixyz avatar Aug 25 '09 23:08 Felixyz
Aceptado

Este comando hará que git elimine el seguimiento de su directorio y de todos los archivos que contiene sin eliminarlos realmente:

git rm -r --cached <your directory>

La -ropción provoca la eliminación de todos los archivos de su directorio.

La --cachedopción hace que los archivos solo se eliminen del índice de git, no de su copia de trabajo. Por defecto git rm <file>se eliminaría <file>.

Gordon Wilson avatar Aug 25 '2009 18:08 Gordon Wilson

Si necesita tener un archivo rastreado (registrado) pero no desea rastrear más cambios de un archivo mientras lo mantiene en su repositorio local así como en el repositorio remoto, esto se puede hacer con:

git update-index --assume-unchanged path/to/file.txt

Después de eso, cualquier cambio realizado en este archivo ya no aparecerá en git status.

Para deshacer esto, use el siguiente comando:

git update-index --no-assume-unchanged path/to/file.txt
jone avatar Oct 08 '2012 17:10 jone