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 copier

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 copier

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 copier

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 copier

git diff # non stagé
git diff --staged # stagé
git diff main..feature # entre deux branches

Trouver quel commit a cassé quelque chose

bash copier

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 copier

git blame fichier.php -L 42,55 # lignes 42 à 55

Branches

bash copier

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 copier

git checkout autre-branche -- src/fichier.php

L'alias qui change la vie

bash copier

git log --oneline --graph --decorate --all

Ajoute-le en alias dans ~/.gitconfig :

ini copier

[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".