HOWTO · Git
Fichiers non suivis dans Git
Git fichiers non suivis et comment les nettoyer
Sur cette page
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
rmarrête le suivi et supprime un fichier du répertoire du référentiel local.- L’option
--cachespécifie que la commandermsupprime 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