Omitir los cambios de archivo con Git
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Git no debe realizar un seguimiento de todos los archivos del proyecto. Los archivos temporales del entorno de desarrollo, los resultados de prueba y los registros son ejemplos de archivos que probablemente no es necesario realizar un seguimiento.
Puede usar diferentes mecanismos para informar a Git de qué archivos del proyecto no se deben realizar un seguimiento y para garantizar que Git no notificará los cambios en esos archivos. Para los archivos que Git no realiza el seguimiento, puede usar un archivo .gitignore
o exclude
. Para los archivos que Git realiza el seguimiento, puede indicar a Git que detenga ese seguimiento y que omita los cambios.
En este artículo aprenderá a:
- Omitir los cambios en los archivos sin realizar un seguimiento mediante un archivo
.gitignore
. - Omitir los cambios en los archivos sin realizar un seguimiento mediante un archivo
exclude
. - Detener el seguimiento de un archivo y omitir los cambios mediante el comando
git update-index
. - Detener el seguimiento de un archivo y omitir los cambios mediante el comando
git rm
.
Usar un archivo .gitignore
Puede indicar a Git que no realice un seguimiento de determinados archivos del proyecto agregando y configurando un archivo .gitignore. Las entradas en un archivo .gitignore
sólo se aplican a los archivos sin seguimiento. No impedirán que Git informe de cambios en los archivos con seguimiento. Los archivos con seguimiento son archivos confirmados y existen en la última instantánea de Git.
Cada línea de un archivo .gitignore
especifica un patrón de búsqueda de archivos relativo a la ruta de acceso del archivo .gitignore
. La sintaxis .gitignore es flexible y admite el uso de comodines para especificar archivos individuales o múltiples por nombre, extensión y ruta. Git compara .gitignore
patrones de búsqueda con los archivos de su proyecto para determinar qué archivos ignorar.
Normalmente, agregará un archivo .gitignore
a la carpeta raíz del proyecto. Sin embargo, puede agregar un archivo .gitignore
a cualquier carpeta del proyecto para que Git sepa qué archivos omitir dentro de esa carpeta y sus subcarpetas en cualquier profundidad anidada. Para varios archivos .gitignore
, los patrones de búsqueda de archivos especificados por un archivo .gitignore
dentro de una carpeta tienen prioridad sobre los patrones especificados por un archivo .gitignore
dentro de una carpeta principal.
Puede crear manualmente un archivo .gitignore
y agregarle entradas de patrones de archivo. O bien, puede ahorrar tiempo descargando una plantilla .gitignore
para su entorno de desarrollo del repositorio gitignore de GitHub. Una de las ventajas de utilizar un archivo .gitignore
es que puede confirmar los cambios y compartirlo con los demás.
Nota:
Visual Studio crea automáticamente un archivo .gitignore
para el entorno de desarrollo de Visual Studio al crear un repositorio de Git.
Visual Studio 2022 proporciona una experiencia de control de versiones de Git a través del menú Git, Cambios de Git y los menús contextuales del Explorador de soluciones. En Visual Studio 2019, versión 16.8, también se ofrece la interfaz de usuario de Git Team Explorer. Parar obtener más información, vea la pestaña Visual Studio 2019: Team Explorer.
En la ventana Cambios de Git, haga clic con el botón derecho en cualquier archivo modificado que desee que Git omita y seleccione Omitir este elemento local u Omitir esta extensión. Esas opciones de menú no existen para los archivos de seguimiento.
La opción Omitir este elemento local agrega una nueva entrada al archivo .gitignore
y quita el archivo seleccionado de la lista de archivos modificados.
La opción Omitir esta extensión agrega una nueva entrada al archivo .gitignore
y quita todos los archivos con la misma extensión que el archivo seleccionado de la lista de archivos modificados.
Cualquier opción crea un archivo .gitignore
si aún no existe en la carpeta raíz del repositorio y agrega una entrada a él.
Edición de un archivo gitignore
Cada entrada del archivo .gitignore
es un patrón de búsqueda de archivos que especifica qué archivos ignorar, un comentario que empieza por el signo de número (#
) o una línea en blanco (para facilitar la lectura). La sintaxis .gitignore
es flexible y admite el uso de comodines para especificar archivos individuales o múltiples por nombre, extensión y ruta. Todas las rutas de acceso del patrón de búsqueda de archivos son relativas al archivo .gitignore
.
Estos son algunos ejemplos de patrones comunes de búsqueda de archivos:
# Ignore all files with the specified name.
# Scope is all repo folders.
config.json
# Ignore all files with the specified extension.
# Scope is all repo folders.
*.json
# Add an exception to prevent ignoring a file with the specified name.
# Scope is all repo folders.
!package.json
# Ignore a file with the specified name.
# Scoped to the 'logs' subfolder.
/logs/test.logfile
# Ignore all files with the specified name.
# Scoped to the 'logs' subfolder and all folders beneath it.
/logs/**/test.logfile
# Ignore all files in the 'logs' subfolder.
/logs/
En cuanto modifique un archivo .gitignore
, Git actualiza la lista de archivos que omite.
Nota:
Los usuarios de Windows deben usar barra diagonal (/
) como separador de ruta de acceso en un archivo .gitignore
en lugar de una barra diagonal inversa (\
). Todos los usuarios deben agregar una barra diagonal al especificar una carpeta.
Usar un archivo .gitignore global
Puede designar un archivo .gitignore
como un archivo de omisión global que se aplica a todos los repositorios de Git locales. Para ello, use el comando git config
de la manera siguiente:
git config core.excludesfile <gitignore file path>
Un archivo global .gitignore
ayuda a garantizar que Git no confirma determinados tipos de archivo, como archivos binarios compilados, en cualquier repositorio local. Los patrones de búsqueda de archivos en un archivo .gitignore
específico del repositorio tienen prioridad sobre los patrones en un archivo global .gitignore
.
Usar un archivo de exclusión
También puede agregar entradas de patrones de búsqueda de archivos al archivo exclude
de la carpeta .git/info/
de su repositorio local. El archivo exclude
permite a Git saber qué archivos sin seguimiento debe omitir. Utiliza la misma sintaxis de patrón de búsqueda de archivos que un archivo .gitignore
.
Las entradas en un archivo exclude
sólo se aplican a los archivos sin seguimiento. No impedirán que Git informe de los cambios en los archivos confirmados que ya realiza el seguimiento. Solo existe un archivo exclude
por repositorio.
Dado que Git no confirma ni inserta el archivo exclude
, puede usarlo de forma segura para omitir los archivos en el sistema local sin afectar a nadie más.
Usar el índice de actualización de Git para omitir los cambios
A veces es conveniente detener temporalmente el seguimiento de un archivo de repositorio local y hacer que Git ignore los cambios en el archivo. Por ejemplo, es posible que quiera personalizar un archivo de configuración para el entorno de desarrollo sin el riesgo de confirmar los cambios. Para ello, puede ejecutar el comando git update-index
con la marca skip-worktree
:
git update-index --skip-worktree <file path>
Para reanudar el seguimiento, ejecute el comando git update-index
con la marca --no-skip-worktree
.
O bien, puede detener temporalmente el seguimiento de un archivo y hacer que Git omita los cambios en el archivo mediante el comando git update-index
con la marca assume-unchanged
. Esta opción es menos eficaz que la marca skip-worktree
, ya que una operación de Git pull
puede revertir la marca assume-unchanged
que cambia el contenido del archivo.
git update-index --assume-unchanged <file path>
Para reanudar el seguimiento, ejecute el comando git update-index
con la marca --no-assume-unchanged
.
Usar Git rm para omitir los cambios
Las entradas de un archivo .gitignore
o exclude
no tienen ningún efecto en los archivos que Git ya realiza el seguimiento. Git realiza un seguimiento de los archivos que ha confirmado anteriormente. Para quitar permanentemente un archivo de la instantánea de Git para que Git ya no lo siga, pero sin eliminarlo del sistema de archivos, ejecute los siguientes comandos:
git rm --cached <file path>
git commit <some message>
Después, use una entrada de archivo .gitignore
o exclude
para evitar que Git informe de cambios en el archivo.