¿Por qué git ignora los archivos que no están en el archivo .gitignore?

6 minutos de lectura

Avatar de usuario de Ian Hunter
ian cazador

Tengo un repositorio git que ignora los archivos de imagen y algunos otros archivos, pero mi .gitignore el archivo solo lo tiene ignorando un config.php expediente. ¿Hay algún archivo de ignorar global en alguna parte que parece que no puedo encontrar? Tengo que especificar archivos para agregarlos ahora, y me da esta advertencia:

Uno de sus archivos .gitignore ignora las siguientes rutas.

El contenido de mi ~/.gitconfig archivo son sólo mi dirección de correo electrónico.

  • Relacionado: stackoverflow.com/questions/12144633/…

    – krlmlr

    12 de junio de 2018 a las 9:06


avatar de usuario de kenorb
kenorb

git check-ignore

Usar git check-ignore dominio para depurar su archivo gitignore (excluir archivos).

Por ejemplo:

$ git check-ignore -v config.php
.gitignore:2:src    config.php

Los detalles de salida anteriores sobre el patrón coincidente (si lo hay) para cada nombre de ruta dado (incluida la línea).

Entonces, tal vez no se ignore la extensión de su archivo, sino todo el directorio.

El formato devuelto es:

<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>

O use el siguiente comando para imprimir su .gitignore en el INICIO del usuario y la carpeta del repositorio:

cat ~/.gitignore "$(git rev-parse --show-toplevel)"/.gitignore "$(git rev-parse --show-toplevel)"/.git/info/exclude

Alternativamente, use git add -f que permite agregar archivos que de otro modo serían ignorados.

Ver: man gitignore, man git-check-ignore para más detalles.

Sintaxis

git comprobar-ignorar [options] ruta de acceso…

git comprobar-ignorar [options] –stdin

  • Esto es mucho mejor que la respuesta aceptada. Sin ofender a eso, pero esto me salvó el día. Gracias Kenorb.

    – luanjunyi

    04/08/2015 a las 21:46

  • Se merece más votos a favor. Descubrí que un extraño gitignore en algunas carpetas /proveedor/ causó problemas con la última versión de git.

    –Manuel Arwed Schmidt

    5 sep 2015 a las 20:50

  • este me salvó hoy… parece que Visual Studio creó un archivo llamado gitignore_global.txt en la carpeta de documentos de los usuarios y esto estaba ignorando archivos que no pude (des) ignorar

    – Samuel

    18 de noviembre de 2015 a las 23:58

  • Resolvió perfectamente mi problema. ¡Algunos patrones no son fáciles de captar a simple vista!

    – Willa

    15 de septiembre de 2016 a las 13:27

  • Tu respuesta me ayudó mucho. De ahora en adelante, tendré en la parte superior de mis archivos gitignore dos comentarios: # Git is ignoring files that aren't in gitignore seguido de la URL de esta respuesta.

    – Carlos

    13 de noviembre de 2021 a las 12:04

Puede ser bueno saber que su configuración de git puede contener un archivo core.excludes que es una ruta a un archivo con patrones adicionales que se ignoran. Puede averiguar si tiene una configuración de este tipo ejecutando (en el repositorio problemático de git):

git config core.excludesfile

Si imprime una ruta de archivo, mire el contenido de ese archivo para obtener más información.

En mi caso, instalé git a través de una versión anterior de caja que ignoró el patrón ‘Icono?’ que en mi caso me dio la advertencia, mencionada en esta pregunta, para los íconos de una carpeta (estoy en un sistema de archivos que no distingue entre mayúsculas y minúsculas, por eso Icon? Coincide con los íconos).

  • Este era de hecho mi problema. No estoy seguro de cómo o cuándo se edita este archivo, pero tenía el archivo que quería en él.

    – toxaq

    26 de febrero de 2014 a las 6:06

  • Gracias, me ahorraste horas de pura agonía. En mi caso, fue la instalación del árbol de fuentes (una herramienta para visualizar el repositorio de git) que, de manera poco lógica, creó en la carpeta de documentos un gitignore_global.txt que incluía muchas exclusiones.

    – Objeto Mecánico

    27 de noviembre de 2014 a las 23:58

  • yo tenia ese mismo maldito Icon? ser ignorado.

    – Justin Skiles

    10 de diciembre de 2015 a las 1:25

  • Este fue mi caso. Tenía bastantes reglas dentro del archivo de ignorar global. Gracias por el consejo +1

    – Locura

    4 oct 2016 a las 10:23

  • Tenía * .json en mi ignorado global, hablando de una pesadilla, ¡gracias!

    – Jason Perfecto

    2 de enero de 2020 a las 15:10

avatar de usuario de gahooa
gahooa

Mira estos:

  1. ¿Ha buscado otros archivos .gitignore, ya que puede haber muchos de ellos?

  2. Además, mire REPO/.git/config para ver si hay algo allí.

  3. Exclusión de repositorio Las reglas locales por repositorio se pueden agregar al archivo .git/info/exclude en su repositorio. Estas reglas no están comprometidas con el repositorio, por lo que no se comparten con otros. Este método se puede usar para archivos generados localmente que no espera que otros usuarios generen, como archivos creados por su editor.

  • No hay otros archivos .gitignore en el repositorio, ni hay nada en el archivo .git/config que ignore nada. ¿Cómo se configura .git/info/exclude?

    – Ian Hunter

    24 de febrero de 2012 a las 19:13

  • No está claro por qué esta respuesta está marcada como respondida. ¿Cómo se resolvió exactamente este problema?

    – Siguiente desarrollador

    15 de agosto de 2016 a las 15:51

  • excluir era mi problema. Sabía que había otra forma de ignorar, que había usado en el pasado, ¡pero olvidé dónde estaba!

    -Chucky

    14 de junio de 2017 a las 9:05

Tuve el mismo problema: git ignoraba un directorio con este error:

➭ git add app/views/admin/tags/
The following paths are ignored by one of your .gitignore files:
app/views/admin/tags
Use -f if you really want to add them.
fatal: no files added

Finalmente descubrí que mi problema era una línea en mi ~/.gitignore_global:

TAGS

que coincidía con el camino app/views/admin/tags. Lo arreglé agregando una barra inclinada al archivo global de gitignore

/TAGS

y git comenzó a rastrear mi directorio nuevamente.

Para mí, accidentalmente tuve un comodín en mi archivo ~/.gitignore_global. Tal vez comprobar allí?

  • Ese fue exactamente el problema para mí. Tenía * .png allí, no tengo idea de cómo llegó allí.

    – Shahar

    26 de enero de 2016 a las 9:37

Avatar de usuario de la comunidad
Comunidad

Otra cosa para probar: tenía un directorio B con su propio .git repositorio anidado en el directorio de mi proyecto A (pero no como un submódulo). Hice algunos cambios en B y quería convertirlo en un submódulo de buena fe. Creo que git A ignoraba automáticamente a B porque contenía su propio repositorio (ver ¿Repositorios de git anidados sin submódulos?). Cambié el nombre de la carpeta B e intenté clonarla nuevamente como un submódulo, y eso me trajo el engañoso mensaje de error “ignorado por .gitignore”. La solución fue borrar .git fuera de b

  • Ese fue exactamente el problema para mí. Tenía * .png allí, no tengo idea de cómo llegó allí.

    – Shahar

    26 de enero de 2016 a las 9:37

avatar de usuario de jwogrady
jwogrady

En mi caso, fue la barra inclinada en mi camino la que causó el problema…

No trabajo

/srv/bootstrap/

Trabajar

srv/bootstrap/

¿Ha sido útil esta solución?