Ignorar archivos sin seguimiento en Git

John Wachira 20 junio 2023
Ignorar archivos sin seguimiento en Git

Este artículo discutirá dos métodos que puede usar para ignorar archivos sin seguimiento en nuestro repositorio de Git. Ejecutar el comando git status generará muchas líneas si tiene varios archivos y carpetas sin seguimiento en su repositorio local.

Saltemos directamente.

Ignorar archivos sin seguimiento en Git

Cubriremos los dos métodos utilizando dos escenarios diferentes. En nuestro primer caso, tenemos el repositorio Delftscopetech.

Esto es lo que tenemos en nuestro repositorio.

pc@JOHN MINGW64 ~/Documents/GitHub/Delftscopetech (main)
$ git status
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   Delft.pdf
        new file:   sample.ph
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        Example Code 2
        Example Code 2.php
        Example Code 3.php
        Example code 1.php
        downloadpdf.php
        htmllinkpdf.html
        insert.php

El comando git status muestra dos archivos listos para confirmar y varios archivos sin seguimiento. Queríamos excluir los archivos sin seguimiento de la salida sin eliminarlos.

¿Cómo haríamos esto?

Agregue el parámetro -uno al comando git status; Es así de simple. Probémoslo con nuestro repositorio.

pc@JOHN MINGW64 ~/Documents/GitHub/Delftscopetech (main)
$ git status -uno
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   Delft.pdf
        new file:   sample.php
Untracked files not listed (use -u option to show untracked files)

El parámetro -uno es un alias para --untracked-files=no.

Si ejecutamos el comando git status sin el parámetro, mostrará los archivos sin seguimiento.

¿Qué pasa si queremos ignorar permanentemente los archivos sin seguimiento? ¿Como hacemos eso?

Usamos el siguiente comando.

git status --porcelain | grep '^??' | cut -c4- >> .gitignore

Esto ocultará permanentemente los archivos actuales sin seguimiento en su repositorio. Tenga en cuenta que debe tener un archivo .gitignore existente para que el comando funcione.

Si no tiene el archivo, el gitignore se ignorará a sí mismo. Utilice el siguiente comando si no tiene el archivo .gitignore.

echo "$(git status --porcelain | grep '^??' | cut -c4-)" > .gitignore

La parte git status --porcelain se ejecutará antes de que se cree el archivo .gitignore. Usamos git status --porcelain en lugar de git status --short para obtener el resultado en un formato fácil de analizar.

La parte grep '^??' filtrará todas las líneas que comiencen con ??. Según el manual, estas líneas corresponden a los archivos sin seguimiento en el repositorio.

La parte cut -c4- allana el camino hacia el archivo sin seguimiento eliminando los primeros tres caracteres de cada línea.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Artículo relacionado - Git Ignore