Certaines commandes Git ne sont pas indispensables au quotidien, mais deviennent précieuses quand on doit rattraper une erreur, récupérer un commit perdu, ou comprendre ce qui s’est passé.
- 📦
stash→ mettre de côté provisoirement - 🍒
cherry-pick→ récupérer un commit précis - 🧱
rebase -i→ nettoyer et réorganiser l’historique - 🕰️
reflog→ retrouver un commit perdu - 🐞
bisect→ identifier un commit fautif
Elles servent surtout à rattraper des erreurs, nettoyer un historique, ou comprendre un problème difficile.
📦 git stash — Mettre de côté des modifications non commités#
git stash sauvegarde temporairement les changements du répertoire de travail, sans les commiter, afin de nettoyer l’espace de travail.
Quand l’utiliser ?
- On veut changer de branche mais on a du travail non terminé.
- On veut tester quelque chose rapidement sans perdre ses modifications.
Commandes :
git stash
git stash pop # Restore
🍒 git cherry-pick — Récupérer un commit précis ailleurs#
git cherry-pick applique un ou plusieurs commits existants sur la branche courante.
Quand l’utiliser ?
- Un commit a été fait sur la mauvaise branche.
- On veut récupérer un correctif sans fusionner toute une branche.
Commandes :
git cherry-pick <commit_hash>
git cherry-pick A..B # Appliquer une plage de commits
🧱 git rebase -i — Réécrire l’historique proprement#
La version interactive de rebase permet de réorganiser l’historique, fusionner des commits (squash), réécrire un message, en supprimer…
Quand l’utiliser ?
- Nettoyer ses commits avant une PR.
- Regrouper plusieurs petits commits en un commit cohérent.
- Modifier l’ordre ou corriger un message.
Commande :
git rebase -i HEAD~n
# Ouvre l’éditeur pour manipuler les commits
🕰️ git reflog — Retrouver l’historique complet, même après erreur#
reflog affiche tous les mouvements de HEAD, y compris ceux qui n’apparaissent plus dans l’historique normal.
C’est la commande de secours quand on pense avoir tout cassé.
Quand l’utiliser ?
- On a fait un reset malencontreux.
- Une branche semble perdue.
- Un commit important a “disparu”.
Commandes :
git reflog
git reset --hard HEAD@{n} # Revenir à un état précédent
🐞 git bisect — Trouver quel commit a introduit un bug#
git bisect fait une recherche binaire dans l’historique pour identifier le commit fautif.
Quand l’utiliser ?
- Un bug est apparu “à un moment donné”, mais on ne sait pas quand.
- On veut localiser la régression rapidement.
Commandes :
git bisect start
git bisect bad # Commit actuel contenant le bug
git bisect good <commit> # Commit connu comme sain
Git teste commits après commits jusqu’à trouver l’origine exacte du problème.