working visual studio not node_modules ignoring example cached git gitignore

visual - .gitignore no está funcionando



gitignore not working visual studio (25)

Mi archivo .gitignore parece estar siendo ignorado por git - ¿podría estar dañado el archivo .gitignore ? ¿Qué formato de archivo, configuración regional o cultura espera git?

Mi .gitignore :

#this is a comment debug.log nbproject/

Salida del 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 gustaría que debug.log y nbproject/ no aparezcan en la lista de archivos sin seguimiento.

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


Acaba de eliminar la carpeta o el archivo que confirmó anteriormente en git siguiendo el comando, luego gitignore reflejará los archivos correctos.

git rm -r -f "folder or files insides"


Al igual que con las otras soluciones, primero confirme y tenga en cuenta que perderá cualquier cambio no confirmado.

Tuve mejores resultados con esto:

git rm -r --cached . git reset HEAD --hard git status

tenga en cuenta que el estado no debe tener archivos modificados ahora.


El archivo .gitignore no funcionará si tiene comentarios en línea, como este:

foo/bar # The bar file contains sensitive data so we don''t want to make this public

Cambia esto a esto:

# The bar file contains sensitive data so we don''t want to make this public foo/bar


En mi caso, es porque los archivos ya existen en el repositorio y estoy tratando de ignorarlo.

Estas son las cosas que hice para solucionar el problema:

  • Copia los archivos a una carpeta temporal
  • Eliminarlos de mi carpeta de proyectos.
  • Confirma los cambios que eliminan esos archivos del repositorio.
  • Volvió a agregar esos archivos a mi carpeta de proyecto

Para entonces, todos los cambios que hice en esos archivos fueron ignorados.

Creo que no puedes ignorar los archivos que ya existen en el repositorio.


Específicamente para usuarios de Windows: si tiene archivos sin seguimiento y borrar / eliminar los archivos en caché no funciona. Intente abrir powershell y convertir el archivo .gitignore a codificación UTF-8.

1) $ Myfile = Get-Content ..gitignore

2) $ Myfile = | Out-File -Encoding "UTF8" .gitignore

Solo debe hacer esto una vez para codificar el archivo .gitignore para ese directorio, y dado que el archivo se codifica correctamente cada vez que edite el archivo en el futuro, debería funcionar. Creo que esto se debe a una falla en el hecho de que GitHub no estaba a punto de leer la codificación no UTF-8 para un archivo .gitignore. Por lo que sé, este problema aún no se ha resuelto para Windows. No es un gran problema, solo es un problema depurar cuando no funciona.


Estaba teniendo un pequeño problema con esto. Pude ir a www.GitHub.com/project y eliminar el archivo con la interfaz de usuario, y agregar ese cambio al repositorio principal.

Parece que agregué el archivo al repositorio antes de crear un .gitignore. Esto parece estar funcionando.


Fijo. Ok, creé el archivo .gitignore en el bloc de notas en Windows y no estaba funcionando. Cuando vi el archivo .gitignore en linux, parecía un alboroto 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 caja de Linux, y cuando lo coloqué en Windows, ¡funciona bien! ¡Hurra!


Hay otro problema con .gitignore que puede suceder, especialmente para un usuario de Windows, a git no le gusta cuando .gitignore (como unity.gitignore ). Siempre querrá nombrarlo .gitignore , o en windows, .gitignore. como Windows cree que está intentando cambiarle el nombre sin un nombre de archivo.


Incluso si no has rastreado los archivos hasta ahora, parece que git puede "saber" sobre ellos incluso después de agregarlos a .gitignore .

NOTA: Primero confirme sus cambios actuales, o los perderá.

Luego ejecuta los siguientes comandos desde la carpeta superior de tu repositorio git:

git rm -r --cached . git add . git commit -m "fixed untracked files"


Me acabo de encontrar con este problema. El contenido dentro de mi archivo .gitignore continuó apareciendo en la lista de archivos sin seguimiento.

Estaba usando esto para crear el archivo de ignorar:

echo "node_modules" > .gitignore

Resulta que las dobles citas me estaban causando el problema. Eliminé el archivo de ignorar y luego utilicé el comando nuevamente sin comillas y funcionó como se esperaba. No necesitaba meterme con la codificación del archivo. Estoy en una máquina Win10 usando Cmder.

Ejemplo:

echo node_modules > .gitignore


Mi problema fue (como sugirió OP) un archivo .gitignore dañado. No creí que lo fuera e ignoré la posibilidad hasta que todo lo demás falló. La corrupción no se mostró en vi , pero había dos bytes en el inicio del archivo que causaron que el archivo .gitignore se ignorara. Para mí, estos solo aparecieron cuando cat .gitignore , que mostraba:

��# Built application files *.apk *.ap_ # ...

No tengo idea de cómo terminaron ahí, pero volver a crear el archivo solucionó el problema. Un análisis hexadecimal del archivo corrupto mostró lo siguiente:

user@dev ~/project/myproject $ xxd -b .gitignore 00000000: 11111111 11111110 00100011 00000000 00100000 00000000 ..#. . 00000006: 01000010 00000000 01110101 00000000 01101001 00000000 B.u.i.


Noté que la codificación de .gitignore estaba teniendo un efecto: si el archivo era Unicode, se ignoraba, si era ASCII, no lo era.

Proceso:

  1. Verificar estado: PS> git status
  2. Crear una función para Get-FileEncoding
  3. Pruebe la codificación de .gitignore : PS> Get-FileEncoding .gitignore
  4. Get-FileEncoding a ASCII: PS> Set-Content .gitignore -Encoding Ascii -Value (Get-Content .gitignore)
  5. Confirmar: PS> git status


Otra causa de este problema son los espacios en blanco o las pestañas antes de la declaración:

Ejemplo:

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

Y como lo señala el comentario de abajo, un espacio al final puede ser un problema también.

#Be aware of following: notWorkingIgnore.* #<-Space workingIgnore.*#<-Nospace


Para mí fue otro problema más. Mi .gitignore está configurado para ignorar todo excepto las cosas que le digo que no ignore. Como tal:

/* !/content/

Ahora, esto obviamente significa que también le estoy diciendo a git que ignore el .gitignore en sí mismo. Lo cual no fue un problema siempre y cuando no estuviera rastreando el .gitignore. Pero en algún momento me comprometí con el .gitignore. Esto llevó a que .gitignore se ignorara correctamente.

Así que añadiendo una línea más lo arreglamos:

/* !/content/ !.gitignore


Para mí ninguna de las respuestas anteriores funcionó. Tuve que copiar el texto .gitignore en el archivo exclude.txt que se encuentra en

<Your-project-folder>/.git/info

Una vez hecho esto, actualice sus cambios y todos los archivos sin seguimiento desaparecerán. Comprometerse como de costumbre.


Si eres usuario de Notepad ++, intenta hacer lo siguiente:

Abra su archivo .gitignore usando Notepad ++ y haga:

Edición> Conversión EOL> Formato de Windows> Guardar

Intenta volver a usar el estado de git y ver si funcionó para ti.

He publicado la respuesta a una pregunta similar here .


Si parece que git no está notando los cambios que realizó en su archivo .gitignore , es posible que desee verificar los siguientes puntos

  • Puede haber un archivo .gitignore global que pueda interferir con el local.
  • Cuando agregue algo al archivo .gitignore, intente 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 del archivo .gitignore y 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


Sin agregar otro compromiso a su proyecto, una línea será suficiente para hacer que .gitignore funcione como debe:

git rm -r --cached debug.log nbproject

Esto lo eliminará del repositorio pero aún así los mantendrá físicamente, en un lenguaje sencillo, eliminará cualquier historial de cambios relacionados con ellos, y tampoco rastreará su cambio en ningún compromiso futuro. Una mejor explicación puedes encontrarla here .


También es una posibilidad que haya editado el archivo .gitignore con un comando sudo . Encontré el mismo problema y, mientras ejecutaba los comandos: git status , aún podía ver los archivos de "debería ignorarse".

Al editar con nano .gitignore lugar de sudo nano .gitignore , pude ver el reflejo correcto.


También revisa el directorio , donde pones .gitignore Debe estar en la raíz de tu proyecto :

./myproject/.gitignore

no en

./myproject/.git/.gitignore


Todas las respuestas aquí son en realidad soluciones. Debe crear el archivo .gitignore ANTES de ejecutar git init ; de lo contrario, git nunca sabrá que debe ignorar esos archivos porque ya se han rastreado.

echo .idea/ >> .gitignore git init

Si desarrolla a diario, le aconsejo que agregue sus archivos ignorados habituales a su archivo ~/.gitignore_global . De esa manera, git ya sabrá qué archivos usted (lo que significa "su usuario", ya que es un archivo en su directorio de inicio) usualmente lo ignora.


Tuve este problema, con un .gitignore que contiene esta línea:

lib/ext/

Acabo de darme cuenta de que, de hecho, este directorio es un enlace simbólico a una carpeta en otro lugar:

ls -la lib/ext/ lrwxr-xr-x 1 roipoussiere users 47 Feb 6 14:16 lib/ext -> /home/roipoussiere/real/path/to/the/lib

En la línea lib/ext/ , git en realidad busca una carpeta , pero un enlace simbólico es un archivo , por lo que mi carpeta lib no se ignora.

Arreglé esto reemplazando lib/ext/ by lib/ext en mi .gitignore.


Una cosa a considerar también es si está guardando su archivo .gitignore con los finales de línea correctos?

WINDOWS: si lo está utilizando en Windows, ¿lo está guardando con los finales de línea de Windows? No todos los programas lo harán de manera predeterminada, notepad ++ y muchos editores de php predeterminarán los finales de línea de linux, por lo que los archivos serán compatibles con el servidor. Una forma fácil de comprobarlo es abrir el archivo en el bloc de notas de Windows. Si todo aparece en una línea, entonces el archivo se guardó con los finales de línea de Linux.

LINUX: si tiene problemas con el archivo que funciona en un entorno Linux. Abra el archivo en un editor como emacs o nano. Si ve algún carácter no imprimible, entonces el archivo se guardó con los finales de línea de Windows.


Yo tuve el mísmo problema. Creo que el problema fue una discrepancia CR vs CR + LF. Guardé cosas en mi .gitignore usando cmd (en Windows 7) y el siguiente comando:

Malo:

echo "file_to_be_ignored.py" >> .gitignore
echo "* ~" >> .gitignore

Etc.

El problema fue que este comando no coloca el marcador de fin de línea correcto para que git reconozca las nuevas líneas (ya sea CR o CR + LF cuando git espera la otra). Resolví el problema reemplazando manualmente cada nueva línea en vim (¡Vim al rescate!) Y funcionó perfectamente.

Intente editar su .gitignore en Notepad ++ o vim (idealmente), incluso si el archivo parece tener el formato correcto, intente reemplazar las nuevas líneas. Suena raro, lo sé, pero trabajó para mí. :RE