¿Cómo se hace que Git ignore archivos sin usar .gitignore?

Resuelto Pablo Fernandez asked hace 15 años • 10 respuestas

Debido a extrañas limitaciones externas, no puedo modificar el contenido .gitignorede mi repositorio. ¿Existe alguna forma de ignorar archivos y directorios además de modificar un archivo .gitignore? Incluso si es una solución global como una configuración global que se aplicará a todos mis repositorios.

Pablo Fernandez avatar Mar 17 '09 16:03 Pablo Fernandez
Aceptado

Si puedes modificar .git/info/excludepuedes poner las mismas reglas allí. Pero ese archivo se encuentra únicamente en su repositorio local.

Ólafur Waage avatar Mar 17 '2009 09:03 Ólafur Waage

No olvidemos, según gitignore , que existe un orden de precedencia en las diferentes "fuentes de patrones de ignorar" que Git considera:

  • Los patrones se leen desde la línea de comando para aquellos comandos que los admiten.
  • Los patrones se leen desde un archivo .gitignore en el mismo directorio que la ruta, o en cualquier directorio principal, y los patrones en los archivos de nivel superior (hasta la raíz) son anulados por aquellos en archivos de nivel inferior hasta el directorio que contiene el archivo.
  • Patrones leídos de $GIT_DIR/info/exclude.
  • Patrones leídos del archivo especificado por la variable de configuración core.excludesfile.

Los dos últimos pueden ser una solución a tu problema pero:

  • no se replican para un repositorio distante
  • sus patrones pueden ser anulados por otras fuentes

(Ver también esta pregunta SO )


Las otras dos soluciones implican actualizar el índice ( git update-index):

  • git update-index --assume-unchanged: consulte " Git: desrastrear un archivo solo en el repositorio local y conservarlo en el repositorio remoto ". Elijah Lynn
    lo menciona en los comentarios .
    • Incluso puedes ignorar el contenido de una carpeta: " git update-index --assume-unchangeden el directorio ".
    • Úselo --no-assume-unchangepara revertir el efecto: consulte "¿ Es posible git addun archivo actualmente protegido por assume-unchanged? ".

Sin embargo, cuando compra otra sucursal o cuando compra git pull, es posible que se restablezca el estado de "ignorar". De ahí la otra opción:

  • git update-index --skip-worktree; ver:
    • " ignorar mis cambios en archivos pero no eliminarlos del representante remoto " y
    • " Preservar archivos git --assume-unchanged entre pagos de sucursales ".

La diferencia entre los dos se explica en " Git: diferencia entre ' assume-unchanged' y ' skip-worktree' ".

VonC avatar Mar 17 '2009 09:03 VonC