Git : les commandes que j'utilise vraiment au quotidien
Le minimum vital
Tout le monde connaît add, commit, push. Voici ce qui vient après.
Annuler le dernier commit (sans perdre les fichiers)
bash
git reset --soft HEAD~1
Ton commit disparaît, les fichiers restent modifiés. Pratique quand tu as oublié un fichier ou mal formulé le message.
Modifier le dernier commit
bash
git commit --amend --no-edit
Ajoute les fichiers stagés au commit précédent sans changer le message. Uniquement si tu n'as pas encore pushé.
Sauvegarder sans committer
bash
git stash
git stash pop # récupérer
git stash list # voir tous les stash
git stash drop 0 # supprimer le stash n°0
Les commandes de diagnostic
Voir ce qui a changé et où
bash
git diff # non stagé
git diff --staged # stagé
git diff main..feature # entre deux branches
Trouver quel commit a cassé quelque chose
bash
git bisect start
git bisect bad # le commit actuel est cassé
git bisect good v1.0 # ce tag fonctionnait
# Git checkout automatiquement des commits intermédiaires
# Tu testes, puis :
git bisect good # ou bad
# Git trouve le commit coupable en O(log n)
git bisect reset # fin de session
Qui a écrit cette ligne ?
bash
git blame fichier.php -L 42,55 # lignes 42 à 55
Branches
bash
git switch -c ma-feature # créer + basculer (moderne)
git switch main # basculer
git branch -d ma-feature # supprimer en local
git push origin --delete ma-feature # supprimer sur remote
Récupérer un seul fichier d'une autre branche
bash
git checkout autre-branche -- src/fichier.php
L'alias qui change la vie
bash
git log --oneline --graph --decorate --all
Ajoute-le en alias dans ~/.gitconfig :
ini
[alias]
lg = log --oneline --graph --decorate --all
st = status -s
co = checkout
git reflog— ton filet de sécurité ultime. Tout ce que Git a fait ces 90 derniers jours est là, y compris les commits "perdus".
Commentaires via Giscus — à activer dans
post.php.