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 comandorm
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