Compartir a través de


Omitir los cambios de archivo con Git

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Visual Studio 2019 | Visual Studio 2022

No todos los archivos del proyecto necesitan un seguimiento de Git. Algunos ejemplos de archivos que normalmente no necesitan realizar el seguimiento incluyen archivos temporales del entorno de desarrollo, salidas de prueba y registros.

Puede usar varios mecanismos para informar a Git de qué archivos del proyecto no se deben realizar un seguimiento y asegurarse de que Git no notifica cambios en esos archivos. En el caso de los archivos que Git no realiza un seguimiento, puede usar un .gitignore archivo o exclude . En el caso de los archivos que Git ya realiza un seguimiento, puede indicar a Git que detenga el seguimiento y omita los cambios.

Prerrequisitos

Categoría Requisitos
Acceso al proyecto Miembro de un proyecto.
Permisos - Ver código en proyectos privados: al menos acceso básico .
- Clone o contribuya al código en proyectos privados: miembro del grupo de seguridad Colaboradores o de los permisos correspondientes del proyecto.
- Establecer permisos de rama o repositorio: administre permisos para la rama o el repositorio.
- Cambiar la rama predeterminada: edite los permisos de directivas para el repositorio.
- Importar un repositorio: miembro del grupo de seguridad Administradores de proyectos o del nivel de proyecto de Git Crear conjunto de permisos de repositorio en Permitir. Para obtener más información, consulte Establecimiento de permisos de repositorio de Git.
Servicios Repositorios habilitados.
Herramientas Optional. Use los comandos az repos : CLI de Azure DevOps.

Nota:

En proyectos públicos, los usuarios con acceso a las partes interesadas tienen acceso completo a Azure Repos, incluida la visualización, la clonación y la contribución al código.

Categoría Requisitos
Acceso al proyecto Miembro de un proyecto.
Permisos - Ver código: al menos acceso básico .
- Clone o contribuya al código: miembro del grupo de seguridad Colaboradores o de los permisos correspondientes del proyecto.
Servicios Repositorios habilitados.

Uso de un archivo .gitignore

Puede indicar a Git que no realice un seguimiento de determinados archivos del proyecto agregando y configurando un archivo .gitignore . Revise los siguientes puntos clave:

  • Archivos sin seguimiento: las entradas de un .gitignore archivo solo se aplican a los archivos no seguidos. No impiden que Git informe de cambios en los archivos de seguimiento. Los archivos con seguimiento son archivos confirmados y existen en la última instantánea de Git.
  • Patrones de búsqueda de archivos: cada línea de un .gitignore archivo especifica un patrón de búsqueda de archivos con respecto a la ruta de acceso del .gitignore archivo. La sintaxis .gitignore es flexible y admite el uso de caracteres comodín para especificar archivos individuales o varios por nombre, extensión y ruta de acceso. Git coincide .gitignore con los patrones de búsqueda con los archivos del proyecto para determinar qué archivos se omitirán.
  • Ubicación: normalmente, se agrega un .gitignore archivo a la carpeta raíz del proyecto. Sin embargo, puede agregar un .gitignore archivo 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 .gitignore archivos, los patrones de búsqueda de archivos que especifica un .gitignore archivo dentro de una carpeta tienen prioridad sobre los patrones que especifica un .gitignore archivo dentro de una carpeta primaria.
  • Creación: puede crear manualmente un .gitignore archivo y agregar entradas de patrón de archivo. También puede ahorrar tiempo descargando una .gitignore plantilla para el entorno de desarrollo desde el repositorio gitignore de GitHub.
  • Ventajas: una de las ventajas de usar un .gitignore archivo es que puede confirmar cambios y compartirlos con otros usuarios.

Nota:

Visual Studio crea automáticamente un .gitignore archivo 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 menús contextuales en el Explorador de soluciones. La versión 16.8 de Visual Studio 2019 también ofrece la interfaz de usuario de Git de Team Explorer . Para obtener más información, consulte 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 quiera que Git ignore y, a continuación, seleccione Omitir este elemento local o Omitir esta extensión. Esas opciones de menú no existen para los archivos de seguimiento.

Captura de pantalla de las opciones del menú contextual para los archivos modificados en la ventana Cambios de Git en Visual Studio.

  • La opción Omitir este elemento local agrega una nueva entrada al .gitignore archivo y quita el archivo seleccionado de la lista de archivos modificados.
  • La opción Omitir esta extensión agrega una nueva entrada al .gitignore archivo y quita todos los archivos con la misma extensión que el archivo seleccionado de la lista de archivos modificados.

Cualquiera de las opciones crea un .gitignore archivo 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 .gitignore archivo es: un patrón de búsqueda de archivos que especifica qué archivos omitir, un comentario que comienza con un signo de número (#) o una línea en blanco (para mejorar la legibilidad). La .gitignore sintaxis es flexible y admite el uso de caracteres comodín para especificar archivos individuales o varios por nombre, extensión y ruta de acceso. Todas las rutas de acceso de los patrones de búsqueda de archivos son relativas al .gitignore archivo.

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 .gitignore archivo, Git actualiza la lista de archivos que omite.

Nota:

Los usuarios de Windows deben usar una barra diagonal (/) como separador de ruta de acceso en un .gitignore archivo, en lugar de usar una barra diagonal inversa (\). Todos los usuarios deben agregar una barra diagonal final al especificar una carpeta.

Uso de un archivo .gitignore global

Puede designar un .gitignore archivo como un archivo de omisión global que se aplica a todos los repositorios de Git locales. Para ello, use el comando de la git config manera siguiente:

git config core.excludesfile <gitignore file path>

Un archivo global .gitignore ayuda a garantizar que Git no confirme determinados tipos de archivo, como archivos binarios compilados, en cualquier repositorio local. Los patrones de búsqueda de archivos en un archivo específico .gitignore del repositorio tienen prioridad sobre los patrones de un archivo global .gitignore .

Uso de un archivo de exclusión

También puede agregar entradas para patrones de búsqueda de archivos al exclude archivo en la .git/info/ carpeta del repositorio local. El exclude archivo permite a Git saber qué archivos no se van a omitir. Usa la misma sintaxis para los patrones de búsqueda de archivos que un .gitignore archivo.

Las entradas de un exclude archivo solo se aplican a los archivos no seguidos. No impiden que Git informe de cambios en los archivos confirmados que ya realiza el seguimiento. Solo existe un exclude archivo por repositorio.

Dado que Git no confirma ni inserta el exclude archivo, puede usarlo de forma segura para omitir archivos en el sistema local sin afectar a nadie más.

Uso del í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, puede 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 git update-index comando con la skip-worktree marca :

git update-index --skip-worktree <file path>

Para reanudar el seguimiento, ejecute el git update-index comando con la --no-skip-worktree marca .

O bien, puede detener temporalmente el seguimiento de un archivo y hacer que Git omita los cambios en el archivo mediante el comando con la git update-indexassume-unchanged marca . Esta opción es menos eficaz que la skip-worktree marca, ya que una operación de Git pull que cambia el contenido del archivo puede revertir la assume-unchanged marca.

git update-index --assume-unchanged <file path>

Para reanudar el seguimiento, ejecute el git update-index comando con la --no-assume-unchanged marca .

Uso de git rm para omitir los cambios

Las entradas de un .gitignore archivo 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 la haga un seguimiento, pero sin eliminarlo del sistema de archivos, ejecute los siguientes comandos:

git rm --cached <file path>
git commit <some message>

A continuación, use una .gitignore entrada de archivo o exclude para evitar que Git informe de cambios en el archivo.

Pasos siguientes