Fichiers non suivis dans Git
Cet article vous présentera comment annuler le suivi des fichiers dans Git.
Les fichiers d’un dépôt git ont deux états : tracked
ou untracked
.
Les fichiers suivis sont des fichiers dont Git a connaissance.
Les fichiers non suivis sont des fichiers qui ont été créés dans le référentiel de travail mais qui n’ont pas été ajoutés à l’aide de la commande git add
.
Considérez ce scénario.
cd ~
mkdir my-repo
cd my-repo
git init
touch file.txt
git add file.txt
git commit -m 'First commit'
Git connaît file.txt
, donc techniquement, file.txt
est maintenant suivi.
Plus tard, vous voulez dire à Git d’ignorer file.txt
(ou tout autre fichier livré par erreur) en ajoutant ce nom de fichier à .gitignore
.
touch .gitignore
echo 'file.txt' >> .gitignore
git add .gitignore && git commit -m 'Ignore file.txt'
Ce qui se passerait?
Après avoir validé .gitignore
, vous apportez une modification à file.txt
, puis git montre toujours que file.txt
est suivi car il est toujours présent dans l’index de votre référentiel.
$ 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")
Annuler le suivi des fichiers dans Git
Étape 1, exécutez la commande suivante.
$ 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
arrête le suivi et supprime un fichier du répertoire du référentiel local.- L’option
--cache
spécifie que la commanderm
supprime le fichier de l’index uniquement, ne supprime pas le fichier du référentiel local
git rm --cache file.txt
arrêtera le suivi de file.txt
en le supprimant de l’index du référentiel mais gardera le fichier intact.
$ 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
A partir de maintenant, Git ne suivra plus les modifications apportées à file.txt
.
$ echo '123' > file.txt
$ git st
On branch master
nothing to commit, working tree clean