¿Por qué Git no ignora mi archivo especificado?

Resuelto Nick.h asked hace 14 años • 16 respuestas

Agregué la siguiente línea a .gitignore:

sites/default/settings.php

pero cuando escribo git status, muestra el archivo como un archivo no preparado.

¿Cuál es el problema? Todos los demás patrones funcionan bien.

Nick.h avatar Oct 01 '10 01:10 Nick.h
Aceptado

Asegúrese de que .gitignoreesté en la raíz del directorio de trabajo y, en ese directorio, ejecute git statusy copie la ruta al archivo desde la salida de estado y péguela en el archivo .gitignore.

Si eso no funciona, entonces es probable que Git ya esté rastreando su archivo. Puede confirmar esto a través de la salida de git status. Si el archivo no aparece en la sección "Archivos sin seguimiento" , Git ya lo ha rastreado e ignorará la regla del .gitignorearchivo.

La razón para ignorar archivos en Git es para que no se agreguen al repositorio. Si anteriormente agregó un archivo que desea ignorar, Git lo rastreará y se omitirán las reglas de ignorar que coincidan con él. Git hace esto porque el archivo ya forma parte del repositorio.

Para ignorar realmente el archivo, debe cancelar su seguimiento y eliminarlo del repositorio. Puedes hacerlo usando git rm --cached sites/default/settings.php. Esto elimina el archivo del repositorio sin eliminarlo físicamente (eso es lo que --cachedhace). Después de realizar ese cambio, el archivo se eliminará del repositorio e ignorarlo debería funcionar correctamente.

Como lo señala @display-name a continuación , a veces es necesario hacer un git add .después git rm --cachedpara reconstruir correctamente el índice.

poke avatar Sep 30 '2010 18:09 poke

Me encuentro con esto, es una pregunta antigua, pero quiero que se rastree ese archivo, pero no en ciertas copias de trabajo, para hacerlo puedes ejecutar

git update-index --assume-unchanged sites/default/settings.php

Para desactivar la bandera:

git update-index --no-assume-unchanged sites/default/settings.php
Mescalito avatar Aug 14 '2011 00:08 Mescalito