git clean

Description
La commande git clean est utilisée pour supprimer les fichiers non suivis du répertoire de travail. Contrairement à git reset et git checkout, qui opèrent sur les fichiers suivis ou mis en attente, git clean cible spécifiquement les fichiers qui n'ont pas encore été ajoutés à l'index Git. Les fichiers non suivis sont ceux créés dans le répertoire de travail mais qui ne sont pas encore suivis. L'exemple ci-dessous montre la différence entre les fichiers suivis et non suivis :
git clean
mkdir test_directory
cd test_directory/
git init .
#Initialized empty Git repository in /Users/kev/code/test_directory/.git/
echo "tracked file" > ./test_tracked_file
git add ./test_tracked_file
echo "untracked" > ./test_untracked_file
mkdir ./test_untracked_dir && touch ./test_untracked_dir/file
git status
#On branch master
#No commits yet
#Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#new file: test_tracked_file
#Untracked files:
# (use "git add <file>..." to include in what will be committed)
#test_untracked_dir/
#test_untracked_fileÀ la suite de l'exemple ci-dessus, vous disposerez d'un nouveau dépôt Git dans le répertoire test_directory, qui contient un test_tracked_file ajouté à l'index Git. De plus, un test_untracked_file est créé, ainsi qu'un test_untracked_dir. L'exemple appelle ensuite git status, qui affiche une sortie montrant l'état interne des modifications suivies et non suivies. La commande git clean est ensuite utilisée pour supprimer ces fichiers non suivis.
N'exécutez pas encore git clean. L'exemple ci-dessous montre l'erreur qu'il génère par défaut. Git nécessite une option de force pour exécuter git clean afin d'éviter toute perte de données accidentelle. Une fois exécutée, vous ne pouvez pas annuler git clean. Il effectue une suppression définitive au niveau du système de fichiers. Vous devriez vous assurer que vous souhaitez vraiment supprimer les fichiers non suivis avant de l'exécuter.
git clean error
git clean
#fatal: clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to cleanOptions courantes et utilisation
La commande git clean possède diverses utilisations avec différentes options.
git clean -n
git clean -nL'option -n effectue un essai de git clean. Elle affiche les fichiers qui seront supprimés, mais ne les supprime pas.
git clean -n example
git clean -n
#Would remove test_untracked_fileComme vous pouvez le voir, il indique que le test_untracked_file sera supprimé lorsque la commande git clean sera exécutée.
git clean -f
git clean -f or --forceL'option --force est requise, sauf si l'option de configuration clean.requireForce est définie sur false. Elle supprime les fichiers non suivis du répertoire courant, à l'exception des dossiers ou fichiers non suivis spécifiés dans .gitignore.
git clean --force
git clean -f
#Removing test_untracked_fileLa sortie indique que le test_untracked_file a été supprimé. À ce stade, git status indiquera que le test_untracked_file a été supprimé et ne peut plus être trouvé. Par défaut, git clean -f opérera sur tous les fichiers non suivis du répertoire courant. De plus, une valeur <path> peut être passée avec l'option -f pour supprimer un fichier spécifique.
Si vous souhaitez supprimer un répertoire non suivi, vous pouvez utiliser l'option -d qui indique à git clean de le faire, car par défaut, elle ignore les répertoires.
git clean -f <path>
git clean -f <path>Vous pouvez également utiliser la combinaison -dn.
git clean -dn
git clean -dn
#Would remove test_untracked_dir/
git clean -df
#Removing test_untracked_dir/Il indique d'abord que test_untracked_file est susceptible d'être supprimé. Ensuite, nous exécutons un nettoyage forcé et recevons un message indiquant que test_untracked_dir a été supprimé.
git clean -x
git clean -xL'option -x indique à git clean d'inclure également les fichiers ignorés. Vous devriez d'abord exécuter un essai avant la suppression définitive. L'option -x agira sur tous les fichiers ignorés. Cela pourrait concerner des éléments involontaires tels que les fichiers de configuration d'IDE ./.idea.
git clean -xf
git clean -xfL'option -x peut être passée et combinée avec d'autres options. L'exemple ci-dessus est une combinaison avec -f qui supprimera les fichiers non suivis du répertoire courant ainsi que tous les fichiers que Git ignore habituellement.
Mode interactif
La commande git clean dispose d'un mode interactif activé en passant l'option -i. Dans l'exemple ci-dessous, nous utilisons également l'option -d, afin d'agir sur le test_untracked_dir. Après avoir activé le mode interactif, une invite What now> s'affichera. Cette invite demandera de sélectionner une commande à appliquer aux fichiers non suivis. Il y a 6 commandes.
git clean -di
git clean -di
Would remove the following items:
test_untracked_dir/ test_untracked_file
*** Commands ***
1: clean 2: filter by pattern 3: select by numbers 4: ask each 5: quit 6: help
What now>Nous allons examiner chaque commande ci-dessous.
- La commande 6 expliquera les autres commandes.
git clean steps
What now> 6
clean - start cleaning
filter by pattern - exclude items from deletion
select by numbers - select items to be deleted by numbers
ask each - confirm each deletion (like "rm -i")
quit - stop cleaning
help - this screen
? - help for prompt selection- La commande 1 supprimera les éléments mentionnés.
git clean step 1, clean
git clean -di
What now> 1
clean- Sélectionner la commande 2 affichera une invite supplémentaire pour filtrer la liste des fichiers non suivis.
git clean filter by pattern
git clean -di
What now> 2Après avoir choisi la commande 2, nous aurons besoin du motif générique *_file, qui restreindra la liste des fichiers non suivis à test_untracked_dir.
git clean steps
Would remove the following items:
test_untracked_dir/ test_untracked_file
*** Commands ***
1: clean 2: filter by pattern 3: select by numbers 4: ask each 5: quit 6: help
What now> 2
test_untracked_dir/ test_untracked_file
Input ignore patterns>> *_file
test_untracked_dir/- Comme la commande 2, la commande 3 sert à affiner la liste des noms de fichiers non suivis. La sélection de cette commande demandera des numéros correspondant à un nom de fichier non suivi.
git clean select by numbers
git clean -di
What now> 3- La commande 4 s'exécutera sur chaque fichier non suivi et affichera une invite Y/N pour confirmer la suppression.
git clean ask each
git clean -di
What now> 4
*** Commands ***
1: clean 2: filter by pattern 3: select by numbers 4: ask each 5: quit 6: help
What now> 4
Remove test_untracked_dir/ [y/N]? N
Remove test_untracked_file [y/N]? N- Sélectionner la commande 5 quittera la session interactive.
git clean quit
git clean -di
What now> 5Pratique
Quelles sont les fonctionnalités et les options de la commande 'git clean' ?