Travailler avec plusieurs fichiers et répertoires
Maintenant que nous savons comment supprimer un seul fichier du cache de Git, explorons des scénarios plus complexes comme la suppression de plusieurs fichiers ou de répertoires entiers.
Création de plus de fichiers pour la pratique
Créons d'abord quelques fichiers supplémentaires et une structure de répertoires pour nous entraîner :
- Créez un répertoire et quelques fichiers supplémentaires :
## Create a directory for temporary files
mkdir temp
## Create some files in the temp directory
echo "This is a temporary file" > temp/temp1.txt
echo "Another temporary file" > temp/temp2.txt
## Create another log file in the main directory
echo "2023-01-02: System updated" > system.log
- Ajoutez ces nouveaux fichiers au suivi de Git :
git add .
- Commitez les changements :
git commit -m "Add temporary files and system log"
- Vérifiez que Git suit tous les fichiers :
git ls-files
Vous devriez voir :
app.log
config.ini
sample.txt
system.log
temp/temp1.txt
temp/temp2.txt
Suppression de plusieurs fichiers du cache de Git
Disons maintenant que nous voulons supprimer tous les fichiers journaux et l'intégralité du répertoire temp du suivi de Git.
- Supprimez le fichier journal du suivi de Git :
git rm --cached system.log
- Supprimez tous les fichiers du répertoire temp de manière récursive :
git rm --cached -r temp/
L'option -r est importante ici car elle indique à Git de supprimer de manière récursive tous les fichiers du répertoire de son cache.
- Vérifiez l'état :
git status
Vous verrez que le fichier journal et tous les fichiers du répertoire temp sont préparés pour être supprimés du système de suivi de Git :
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: system.log
deleted: temp/temp1.txt
deleted: temp/temp2.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
system.log
temp/
- Commitez ces changements :
git commit -m "Remove logs and temp directory from Git tracking"
- Vérifiez que Git ne suit plus ces fichiers :
git ls-files
Maintenant, vous devriez seulement voir :
app.log
config.ini
sample.txt
Cependant, tous les fichiers existent toujours dans votre répertoire local :
ls -la
ls -la temp/
Utilisation de .gitignore pour empêcher le suivi des fichiers indésirables
Maintenant que nous avons supprimé les fichiers du suivi de Git, configurons un fichier .gitignore pour les empêcher d'être accidentellement ajoutés à nouveau :
- Créez un fichier
.gitignore :
nano .gitignore
- Ajoutez les motifs suivants au fichier :
## Ignore log files
*.log
## Ignore temp directory
temp/
-
Enregistrez et quittez (appuyez sur Ctrl+X, puis Y, puis Entrée)
-
Ajoutez et commitez le fichier .gitignore :
git add .gitignore
git commit -m "Add .gitignore file"
Maintenant, même si vous essayez d'ajouter tous les fichiers à Git, il respectera votre fichier .gitignore et ne suivra pas les motifs spécifiés :
git add .
git status
Vous devriez voir que les fichiers journaux et le répertoire temp ne sont pas ajoutés au suivi de Git.
Vous avez maintenant appris comment supprimer plusieurs fichiers et répertoires du cache de Git et comment empêcher des fichiers spécifiques d'être suivis à l'avenir en utilisant un fichier .gitignore.