usar tag repositorio que ignorar hace crear como comando archivos git ignore gitignore

tag - ignorar archivos git



¿Cómo configuro git para ignorar algunos archivos localmente? (9)

Agregue las siguientes líneas a la sección [alias] de su archivo .gitconfig

ignore = update-index --assume-unchanged unignore = update-index --no-assume-unchanged ignored = !git ls-files -v | grep "^[[:lower:]]"

Ahora puede usar git ignore my_file para ignorar los cambios en el archivo local, y git unignore my_file para dejar de ignorar los cambios. git ignored enumera los archivos ignorados.

Esta respuesta se obtuvo de http://gitready.com/intermediate/2009/02/18/temporarily-ignoring-files.html .

¿Puedo ignorar los archivos localmente sin contaminar la configuración global de git para todos los demás? Tengo archivos sin seguimiento que son spam en mi estado de git pero no quiero confirmar los cambios de configuración de git por cada pequeño archivo aleatorio sin seguimiento que tengo en mis sucursales locales.



De la documentación relevante de Git :

Los patrones que son específicos de un repositorio en particular pero que no necesitan ser compartidos con otros repositorios relacionados (por ejemplo, los archivos auxiliares que viven dentro del repositorio pero son específicos para el flujo de trabajo de un usuario) deben ir al $GIT_DIR/info/exclude .

El archivo .git/info/exclude tiene el mismo formato que cualquier archivo .gitignore . Otra opción es establecer core.excludesFile con el nombre de un archivo que contiene patrones globales.

Tenga en cuenta que si ya tiene cambios sin etapas, debe ejecutar lo siguiente después de editar sus patrones de ignorar:

git update-index --assume-unchanged [<file>...]

Nota sobre $GIT_DIR : esta es una notación utilizada en todo el manual de git simplemente para indicar la ruta al repositorio de git. Si la variable de entorno está configurada, entonces se anulará la ubicación de cualquier repositorio en el que esté, lo que probablemente no sea lo que desea.


No olvides reconocer un hecho con @joss ​​lee answer.

git update-index --assume-unchanged directory/

Observe la barra diagonal (/) al final.


Puedes instalar algunos alias de git para simplificar este proceso. Esto edita el nodo [alias] de su archivo .gitconfig .

git config --global alias.ignore ''update-index --skip-worktree'' git config --global alias.unignore ''update-index --no-skip-worktree'' git config --global alias.ignored ''!git ls-files -v | grep "^S"''

Los accesos directos que este instala para usted son los siguientes:

  • git ignore config.xml
    • git fingirá que no ve ningún cambio en el config.xml , lo que le impide cometer esos cambios accidentalmente.
  • git unignore config.xml
    • git reanudará el reconocimiento de sus cambios en config.xml , lo que le permitirá volver a realizar esos cambios.
  • git ignored
    • git mostrará una lista de todos los archivos que está "ignorando" de la manera descrita anteriormente.

Los construí refiriéndome a la respuesta de phatmann, que presenta una versión del mismo --assume-unchanged una --assume-unchanged .

La versión que presento utiliza --skip-worktree para ignorar los cambios locales. Vea la respuesta de Borealid para obtener una explicación completa de la diferencia, pero esencialmente el propósito de --skip-worktree es que los desarrolladores cambien los archivos sin el riesgo de cometerlos .

El comando git ignored presenta aquí usa git ls-files -v , y filtra la lista para mostrar solo las entradas que comienzan con la etiqueta S La etiqueta S denota un archivo cuyo estado es "skip worktree". Para obtener una lista completa de los estados de los archivos mostrados por git ls-files : consulte la documentación de la opción -t en git ls-files .


Si su repositorio aún no tiene un archivo .gitignore, una solución simple es crear un archivo .gitignore, y en él agregar .gitignore a la lista de archivos que se ignorarán.


Simplemente puede agregar un archivo .gitignore a su directorio de inicio, es decir, $HOME/.gitignore o ~/.gitignore . Luego dile a git que use ese archivo con el comando:

git config --global core.excludesfile ~/.gitignore

Este es un archivo .gitignore normal al que git hace referencia cuando decide qué ignorar. Ya que está en su directorio de inicio, se aplica solo a usted y no contamina ningún archivo .gitignore del proyecto.

He estado usando este enfoque durante años con excelentes resultados.


Tienes varias opciones:

  • Deje un archivo .gitignore sucio (o no confirmado) en su directorio de trabajo (o aplíquelo automáticamente usando topgit o alguna otra herramienta de parche topgit ).
  • Coloque las $GIT_DIR/info/exclude en su $GIT_DIR/info/exclude , si esto es específico de un árbol.
  • Ejecute git config --global core.excludesfile ~/.gitignore y agregue patrones a su ~/.gitignore . Esta opción se aplica si desea ignorar ciertos patrones en todos los árboles. Lo uso para .pyc .pyo y .pyo , por ejemplo.

Además, asegúrese de estar usando patrones y no enumerar explícitamente los archivos, cuando corresponda.


Actualización : considere usar git update-index --skip-worktree [<file>...] lugar, gracias @danShumway! Vea la explicación de Borealid sobre la diferencia de las dos opciones .

Respuesta antigua:

Si necesita ignorar los cambios locales a los archivos rastreados (tenemos que con las modificaciones locales a los archivos de configuración), use git update-index --assume-unchanged [<file>...] .