Les bases de Git couvrent 90% de votre quotidien. Les 10% restants — réécrire l’historique, déboguer une régression, gérer des sous-projets — demandent des outils spécialisés. Cette section regroupe 12 guides sur les commandes avancées de Git : sélection de révisions, staging interactif, stash, recherche, réécriture d’historique, reset, merge avancé, debug, submodules, subtree, bundling et credentials.
Ces outils ne sont pas réservés aux experts. git add -p et
git stash s’utilisent dès la deuxième semaine de pratique. Le rebase
interactif et git bisect demandent un peu plus de pratique, mais
transforment durablement votre façon de travailler.
Quand utiliser ces outils ?
Section intitulée « Quand utiliser ces outils ? »Chaque outil répond à un besoin spécifique. Le tableau suivant vous oriente vers le bon guide :
| Situation | Outil | Guide |
|---|---|---|
| Je veux commiter seulement une partie de mes modifications | git add -p | Staging interactif |
| Je suis interrompu et dois changer de branche | git stash | Stashing et cleaning |
| Je veux nettoyer mes commits avant de pusher | git rebase -i | Réécrire l’historique |
Je veux comprendre ce que fait reset --hard | Les 3 arbres | Reset démystifié |
| Je cherche le commit qui a introduit un bug | git bisect | Debug : bisect et blame |
| Je dois référencer un mot-clé dans l’historique | git log -S, git grep | Rechercher dans Git |
| Mon projet inclut un sous-projet Git | git submodule | Submodules |
| Je dois annuler un merge raté | merge --abort, rerere | Merge avancé |
| Je dois transférer un repo sans réseau | git bundle | Bundling |
| Je veux naviguer dans l’historique avec précision | HEAD~, HEAD^, A..B | Sélection de révisions |
| Git me redemande les credentials à chaque push | credential helper | Stockage des credentials |
Sous-sections
Section intitulée « Sous-sections »La section est découpée en 4 sous-sections selon la nature de l’outil :
À retenir
Section intitulée « À retenir »git add -petgit stashsont les deux commandes avancées les plus utilisées au quotidiengit rebase -ipermet de nettoyer l’historique avant de pusher — squash, fixup, reword, reordergit resetagit sur les 3 arbres de Git (HEAD, Index, Working Dir) — comprenez le modèle pour ne jamais perdre de donnéesgit bisecttrouve un commit coupable en O(log n) — pensez-y pour toute régression- Les submodules ne sont pas la seule option : subtree est souvent plus simple pour les petits sous-projets