¿Ignorar el contenido de un directorio ya registrado?
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?
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 -r
opción provoca la eliminación de todos los archivos de su directorio.
La --cached
opció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>
.
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