Pregunta Ignorar los archivos que ya han sido enviados a un repositorio de Git [duplicado]


Esta pregunta ya tiene una respuesta aquí:

Tengo un repositorio de Git ya inicializado que agregué .gitignore archivo a. ¿Cómo puedo actualizar el índice del archivo para que se ignoren los archivos que deseo ignorar?


2189
2017-07-16 19:26


origen


Respuestas:


Para destrabar un soltero archivo que ya ha sido agregado / inicializado a su repositorio, es decir, deje de seguir el archivo pero no lo elimine del uso de su sistema: git rm --cached filename

Para destrabar cada archivo que está ahora en su .gitignore:

Primero cometer cualquier cambio de código pendiente, y luego, ejecuta este comando:

git rm -r --cached .

Esto elimina cualquier archivo cambiado de la índice(área de preparación), luego solo ejecuta:

git add .

Compromételo:

git commit -m ".gitignore is now working"

Deshacer git rm --cached filename, utilizar git add filename.

Asegúrese de confirmar todos sus cambios importantes antes de ejecutar git add .    De lo contrario, perderá los cambios en otros archivos.


3656
2017-07-06 17:09



Si está tratando de ignorar los cambios en un archivo que ya ha sido rastreado en el repositorio (por ejemplo, un archivo dev.properties que necesitaría cambiar para su entorno local, pero nunca querría verificar estos cambios) que lo que desea hacer es:

git update-index --assume-unchanged <file>

Si quieres comenzar a rastrear cambios nuevamente

git update-index --no-assume-unchanged <file>

Ver git-update-index (1) Página manual.

También eche un vistazo a la skip-worktree y no-skip-worktree opciones para update-index si necesita que esto persista después de un git-reset (vía)


Actualizar: Como la gente ha estado preguntando, aquí hay un alias conveniente (y actualizado desde el que se comenta a continuación) para ver qué archivos están actualmente "ignorados" (--assume-unchanged) en su área de trabajo local

$ git config --global alias.ignored = !git ls-files -v | grep "^[[:lower:]]"

518
2017-09-14 23:55



Para destrabar un archivo que ya ha sido agregado / inicializado a su repositorio, es decir, deje de seguir el archivo pero no lo elimine del uso de su sistema: git rm --cached filename


351
2017-07-18 08:15



Sí - .gitignore el sistema solo ignora los archivos que no están actualmente bajo el control de la versión de git.

Es decir. si ya ha agregado un archivo llamado test.txt utilizando git-add, luego agregando test.txt a .gitignore todavía causará cambios a test.txt ser rastreado

Usted tendría que git rm test.txt primero y comprometer ese cambio. Solo entonces se realizarán cambios en test.txt ser ignorado.


78
2018-02-02 15:59



Eliminar el espacio en blanco al final en .gitignore

Además, asegúrese de no tener espacios en blanco al final en su .gitignore. Llegué a esta pregunta porque estaba buscando una respuesta, y luego tuve la extraña sensación de que debería abrir el editor en lugar de solo cating .gitignore. Se eliminó un espacio adicional desde el final y maricón ahora funciona :)


50
2017-07-15 07:22



seguí estos pasos

git rm -r --cached .
git add .
git reset HEAD

después de eso, git borra todos los archivos (* .swp en mi caso) que deberían estar ignorando.


40
2018-03-02 09:00



Si desea detener el seguimiento de archivos sin eliminar el archivo de su sistema local, lo cual prefiero por ignorar config/database.yml archivo. Simplemente intente:

git rm --cached config/database.yml
# this will delete your file from git history but not from your local system.

ahora, agrega este archivo a .gitignorearchive y comprometa los cambios. Y a partir de ahora, Git no realizará ningún seguimiento de los cambios realizados en config / database.yml.

$ echo config/database.yml >> .gitignore

Gracias


37
2017-08-21 14:20



Para eliminar solo algunos archivos específicos de su seguimiento:

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

Si alguna vez quieres comenzar a rastrearlo de nuevo:

git update-index --no-assume-unchanged path/to/file                      

28
2018-04-17 07:21



Como dice dav_i, para mantener el archivo en repositorio y, aun así, eliminarlo de los cambios sin crear un compromiso adicional, puede usar:

git update-index --assume-unchanged filename

26
2018-04-12 20:39



Sin saber muy bien lo que hizo la orden de 'respuesta', la ejecuté, para mi consternación. Repetidamente elimina todos los archivos de tu repositorio git.

Stackoverflow al rescate ... ¿Cómo revertir un "git rm -r."?

git reset HEAD

Hice el truco, ya que no había confirmado los archivos locales que no quería sobrescribir.


24
2017-07-19 05:38



Respuestas complejas en todas partes!

Solo use la siguiente

git rm -r --cached .

¡Eliminará los archivos que está tratando de ignorar desde el origen y no desde el maestro en su computadora!

¡Después de eso solo comprométete y empuja!


24
2018-06-18 21:08