Fichiers non suivis dans Git

Stewart Nguyen 6 février 2022
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 commande rm 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

Article connexe - Git Tracking