.gitignore es ignorado por Git

Resuelto Matt Parkins asked hace 12 años • 38 respuestas

.gitignoreParece que Git ignora mi archivo. ¿Podría ser que.gitignore archivo. ¿Podría estar dañado el archivo? ¿Qué formato de archivo, configuración regional o cultura espera Git?

Mi .gitignore:

# This is a comment
debug.log
nbproject/

Salida de git status:

# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       debug.log
#       nbproject/
nothing added to commit but untracked files present (use "git add" to track)

me gustaria debug.logynbproject/ no aparecer en la lista de archivos sin seguimiento.

¿Dónde debería empezar a buscar para solucionar este problema?

Matt Parkins avatar Jul 12 '12 19:07 Matt Parkins
Aceptado

Incluso si no has rastreado los archivos hasta ahora, Git parece ser capaz de "conocerlos" incluso después de agregarlos al archivo .gitignore.

ADVERTENCIA: Primero confirme o guarde los cambios actuales o los perderá.

Luego ejecute los siguientes comandos desde la carpeta superior de su repositorio Git:

git rm -r --cached .
git add .
git commit -m "fixed untracked files"
Alin Huruba avatar Jul 12 '2012 12:07 Alin Huruba

Si parece que Git no nota los cambios que realizó en su .gitignorearchivo, es posible que desee verificar los siguientes puntos:

  • Es posible que haya un .gitignorearchivo global que pueda interferir con el local.

  • Cuando agregas algo a un archivo .gitignore, prueba esto:

      git add [uncommitted changes you want to keep] && git commit
      git rm -r --cached .
      git add .
      git commit -m "fixed untracked files"
    
  • Si elimina algo de un archivo .gitignore y es posible que los pasos anteriores no funcionen, si descubre que los pasos anteriores no funcionan, intente esto :

      git add -f [files you want to track again]
      git commit -m "Refresh removing files from .gitignore file."
    
      // For example, if you want the .java type file to be tracked again,
      // The command should be:
      //     git add -f *.java
    
ifeegoo avatar Sep 03 '2015 13:09 ifeegoo

Fijado. Bien, creé el archivo .gitignore en el Bloc de notas de Windows y no funcionaba. Cuando vi el archivo .gitignore en Linux, parecía un galimatías organizado; tal vez el Bloc de notas había escrito Unicode en lugar de ASCII o lo que sea de 8 bits.

Así que reescribí el archivo en mi máquina Linux y cuando lo regresé a Windows ¡funciona bien! ¡Hurra!

Matt Parkins avatar Jul 12 '2012 12:07 Matt Parkins

Sin agregar otra confirmación a su proyecto, una línea será suficiente para que funcione .gitignorecomo se supone:

git rm -r --cached debug.log nbproject

Esto los eliminará del repositorio, pero aún los mantendrá físicamente. En términos sencillos, elimina cualquier historial de cambios relacionados con ellos y tampoco realizará un seguimiento de sus cambios en ninguna confirmación futura. Puede encontrar una mejor explicación aquí .

H Aßdøµ avatar Mar 19 '2014 23:03 H Aßdøµ

Otra causa de este problema son los espacios en blanco o tabulaciones antes de la declaración:

Ejemplo:

# Be aware of the following:
 notWorkingIgnore.*
workingIgnore.*

Y como lo señala el comentario a continuación, un espacio final también puede ser un problema:

# Be aware of the following:
notWorkingIgnore.* #<-Space
workingIgnore.*#<-Nospace
Rawa avatar Dec 23 '2013 01:12 Rawa