Ce petit article rapide a pour but de me servir de mémo pour quelques astuces Git que j’ai découvertes récemment et qui serviront peut-être à d’autres personnes.
Supprimer tous les fichiers non-versionnés
J’ai pris l’habitude dans mes projets (surtout ceux en C++) de faire un “scons -c
” de temps en temps pour supprimer les fichiers issus de la compilation. Cependant, cette commande ne supprime évidemment pas tous les autres fichiers, eux-aussi générés mais qui proviennent d’autre part (par exemple le “.sconsign.dblite
” généré par SCons).
Si votre projet utilise Git, vous pouvez aussi faire :
1 |
git clean |
Qui supprime tous les fichiers non-versionnés du dépôt.
Notez que par défaut, la configuration de Git prévient l’utilisation de “git clean
“, en obligeant la spécification du paramètre “-f
“.
Vous devrez donc probablement faire :
1 |
git clean -f |
Pour que ça fonctionne.
Pour ma part, j’ai créé l’alias suivant :
1 |
git config --global alias.cl 'clean -f -x -d' |
Qui me supprime du dépôt tous les fichiers non-versionnés, ignorés et les répertoires vides.
Ajouter tous les fichiers non-versionnés au .gitignore
Ayant récemment du travailler sur un projet automake/autoconf, j’ai été confronté au problème suivant :
automake/autoconf génèrent tout un tas de fichiers qui ne doivent pas être versionnés, et qui ont donc tout intérêt à être ignorés.
La commande git status m’affichait quelque-chose de ce genre :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # Makefile.global # acinclude.m4 # aclocal.m4 # autom4te.cache/ # build/ # config.guess # config.h.in # config.sub # configure # configure.in # install-sh # ltmain.sh # missing # mkinstalldirs # run-tests.php nothing added to commit but untracked files present (use "git add" to track) |
Très informatif, certes, mais peu exploitable. Et je n’avais pas envie de jouer du parseur pour traiter une liste de quelques fichiers.
Notez que dans ce cas, vous pouvez simplement utiliser :
1 |
git ls-files -o > .gitignore |
Qui va ajouter dans le fichier .gitignore tous les fichiers non-versionnés
Je vous invite par ailleurs à regarder l’aide de la commande git ls-files pour voir toutes les options d’affichage qu’elle propose : une vraie mine d’or !
Mais encore…
N’hésitez pas à commenter si avez vous aussi des astuces à partager. Je me ferai une joie de mettre à jour cet article !