Archivos no rastreados de Git

Stewart Nguyen 6 febrero 2022
Archivos no rastreados de Git

Este artículo presentará cómo dejar de rastrear archivos en Git.

Los archivos dentro de un repositorio de git tienen dos estados: tracked o untracked.

Los archivos rastreados son archivos que Git conoce.

Los archivos sin seguimiento son archivos que se han creado dentro del repositorio de trabajo pero que no se han agregado con el comando git add.

Considere este escenario.

cd ~
mkdir my-repo
cd my-repo
git init
touch file.txt
git add file.txt
git commit -m 'First commit'

Git conoce file.txt, por lo que, técnicamente, ahora se realiza un seguimiento de file.txt.

Más adelante, desea decirle a Git que ignore file.txt (o cualquier archivo enviado por error) agregando este nombre de archivo a .gitignore.

touch .gitignore
echo 'file.txt' >> .gitignore
git add .gitignore && git commit -m 'Ignore file.txt'

¿Qué pasaría?

Después de confirmar .gitignore, realiza un cambio en file.txt, luego git aún muestra que se rastrea file.txt porque todavía está presente en el índice de su repositorio.

$ echo 'qwe' > file.txt
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   file.txt

no changes added to commit (use "git add" and/or "git commit -a")

Dejar de rastrear archivos en Git

Paso 1, ejecuta el siguiente comando.

$ git rm --cache file.txt
rm 'file.txt'
$ git st
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	deleted:    file.txt
  • rm deja de rastrear y elimina un archivo del directorio del repositorio local.
  • La opción --cache especifica que el comando rm elimina el archivo solo del índice, no elimina el archivo del repositorio local

git rm --cache file.txt dejará de rastrear file.txt eliminándolo del índice del repositorio pero manteniendo el archivo intacto.

$ git commit -m 'Remove file.txt from tracking'
[master 4697164] Remove file.txt from tracking
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 file.txt

De ahora en adelante, Git no rastreará ningún cambio realizado en file.txt.

$ echo '123' > file.txt
$ git st
On branch master
nothing to commit, working tree clean

Artículo relacionado - Git Tracking