Parce que quand y a plus de git, y en a encore.
Ajout interactif
Vous avez fait plusieurs modifications sur un fichier, mais vous voulez seulement en commiter une partie.
git add -p
Récupérer un fichier d’une autre branche
Vous avez une modif sur une autre branche, et vous voulez juste celle là.
git checkout-- checmin/vers/fichier
Ne jamais commiter les changements d’un fichier
C’est un peu un.gitignore, mais pour un fichier qui est déjà dans le repo. Cette commande demande à git d’ignorer toute modification d’un fichier, même si il est déjà suivi.
git update-index --assume-unchanged fichier
Créer une branche sans historique
Parceque fois, vous avez juste besoin de repartir à zéro, mais garder le même repo.
git checkout --orphan
Vérifier ce qu’on va commiter
Vous avez fait plein de add, mais vous voulez voir le diff de ce qui va être commité.
git diff --staged
Perso, pour les commits (et pour voir l’historique) j’utilise gitg. (bouh, c’est pas de la ligne de commande !)
Il permet de visualiser directement les changements à commiter, permet de choisir facilement quelles parties du fichier sont à placer dans un commit, etc… C’est pour moi beaucoup plus clair qu’en ligne de commande, il y a toutes les infos directement sous les yeux.
Par contre, il y a des bugs un peu chiants. Notamment, ne commitez pas un merge avec gitg (rine n’est pardu mais en gros le commit ne valide pas le merge). Il y a aussi des fichiers qui apparaissent en double dans la liste des modifs. Pour l’utilisation que j’en fais, les avantages dépassent largement les inconvénients !
Rhaaa, le |git diff –staged| est pile ce qui me manquait. Merci pour l’article !
Comme client git interactif, plutôt que gitg j’utilise tig. C’est du ncurses, on reste dans le term. Pratique, notamment pour les |git blame|.