¿Por qué .gitignore no ignora mis archivos?

Respuestas:

218

.gitignoresolo ignora los archivos que aún no forman parte del repositorio. Si ya git addeditó algunos archivos, sus cambios se seguirán realizando. Para eliminar esos archivos de su repositorio (pero no de su sistema de archivos) utilice git rm --cacheden ellos.

Elmar Peise
fuente
9
git rm --cached file_name.ext funciona bien para mí para actualizar gitignore para un archivo. Gracias.
sybozz
3
Hice esto, pero GitHub todavía quiere rastrearlos y agregarlos.
Netside
92

El archivo .gitignore garantiza que los archivos no rastreados por Git permanezcan sin rastreo.

El simple hecho de agregar carpetas / archivos a un archivo .gitignore no los eliminará; Git los rastreará.

Para eliminar el seguimiento de los archivos, es necesario eliminar del repositorio los archivos rastreados enumerados en el archivo .gitignore. Luego, vuelva a agregarlos y confirme sus cambios.

La forma más fácil y completa de hacer esto es eliminar y almacenar en caché todos los archivos en el repositorio, luego volver a agregarlos. No se realizará el seguimiento de todas las carpetas / archivos enumerados en el archivo .gitignore. Desde la carpeta superior del repositorio, ejecute los siguientes comandos:

git rm -r --cached . git add .

Luego confirma tus cambios:

git commit -m "Untrack files in .gitignore"

Tenga en cuenta que cualquier confirmación anterior con los archivos no deseados permanecerá en el historial de confirmación. Al enviar a GitHub, tenga en cuenta un historial de confirmación que puede contener .envo client_secret.jsonarchivos.

La mejor práctica es crear un archivo .gitignore y completarlo con las carpetas / archivos que no desea rastrear al iniciar un proyecto. Sin embargo, a menudo es necesario agregarlo al archivo .gitignore después de darse cuenta de que se están rastreando y almacenando archivos no deseados.

MarckK
fuente
gracias por la respuesta. Esto realmente ayudó. No olvides subir el repositorio a Git tampoco
Chris Reed
Después de usar la git rm -r --cached .reversión de todos los cambios, también funciona para volver a agregar todos los archivos que no deben excluirse con .gitignore .
Adam Hurwitz
8

gitignore ignora solo los archivos sin seguimiento. Sus archivos están marcados como modificados, lo que significa que fueron confirmados y el pasado y ahora son rastreados por git.

Para ignorarlos, primero debe eliminarlos git rm, confirmarlos y luego ignorarlos.

Igal S.
fuente
6

Puede usar git rm -r --cached ./node_modules. Suponga que si desea ignorar el nodo

sam r
fuente
4

Mire esto: .gitignore no está funcionando Y particularmente el comentario de ADTC:

Asegúrese de que su archivo .gitignore use codificación ANSI o UTF-8. Si usa algo más como Unicode BOM, es posible que Git no pueda leer el archivo. - ADTC 14 de diciembre de 2017 a las 12:39

Philippe Raemy
fuente
0

Primero elimine el archivo index.lock de su repositorio git

rm -f .git/index.lock

y luego agregue .gitignore

git add .gitignore
KayV
fuente