Tech Blog_

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

Commentaires via Giscus — à activer dans post.php.

← Retour aux articles