Skip to content

🚀 L’antisèche Git Gud

Votre pense‑bête ultra‑rapide pour le quotidien Git. Cliquez pour voir « la magie » derrière chaque action.

🌱 Partir d’une main à jour et créer une branche

💡 Afficher les commandes

Parfait pour : démarrer une feature, un bugfix, une task.

Étape 1 : basculer sur main

sh
git checkout main

Étape 2 : se synchroniser

sh
git reset --hard
git pull

Étape 3 : créer la branche

sh
git checkout -b feature/GG-12_storyName

Alternative moderne

sh
git switch -c feature/GG-12_storyName

Ce qui se passe

  1. ✅ On revient sur main
  2. 🧹 On nettoie l’état local et on se sync
  3. ⬇️ On récupère les derniers commits
  4. 🎯 On crée et on bascule sur la branche de travail

🔗 Écraser plusieurs commits en un seul

💡 Afficher les commandes

Parfait pour : avant d’ouvrir une PR ou après plusieurs commits « WIP ».

Commande

sh
git rebase -i HEAD~3

Ce qui se passe Vous combinez les 3 derniers commits : laissez le premier en pick, mettez les autres en squash (ou fixup si vous ne voulez pas garder leurs messages).

🚀 Pousser une branche pour la première fois

💡 Afficher les commandes

Parfait pour : partager votre travail et ouvrir une PR.

sh
git push -u origin feature/GG-12_storyName

Ce qui se passe

  • 📤 La branche est poussée à distance
  • 🔗 L'option -u (abrégé de --set-upstream) configure la branche distante comme « upstream » pour que les futurs git push fonctionnent sans préciser le remote

🔄 Mettre à jour sa branche avec main

💡 Afficher les commandes

Rebase (propre)

sh
git pull --rebase origin main

Merge (rapide mais spaghetti)

sh
git pull --merge origin main

💪 Force‑push en sécurité après réécriture

💡 Afficher les commandes

Parfait pour : après un squash, un rebase, bref quand l’historique a changé.

Force‑push sûr

sh
git push --force-with-lease --force-if-includes

Combo de pro

sh
git rebase -i HEAD~3
git pull --rebase origin main
git push --force-with-lease

Ce qui se passe On force‑push sans écraser par erreur le travail d’un collègue (grâce à --force-with-lease) et on s’assure que la branche distante contient bien les commits attendus (grâce à --force-if-includes). 💡 Gagnez du temps avec l’alias git pf.

🆘 Revenir à l’état exact du remote

💡 Afficher les commandes

Parfait pour : remettre à plat une branche locale en vrac.

sh
git fetch origin
git reset --hard origin/feature/GG-12_storyName

⚠️ Détruit les changements non commités.

🔀 Changer de branche existante

💡 Afficher les commandes
sh
git checkout branch-name

Alternative moderne

sh
git switch branch-name

📊 Voir l’état du répertoire de travail

💡 Afficher les commandes
sh
git status

💾 Indexer et commit

💡 Afficher les commandes
sh
git add .
git commit -m "feat: add user authentication"

Alternative (fichiers déjà suivis)

sh
git commit -am "feat: add user authentication"

⚠️ -am est plus rapide mais n’indexe pas les nouveaux fichiers.

📚 Voir l’historique

💡 Afficher les commandes
sh
git log --oneline
git log --oneline --graph

↩️ Annuler le dernier commit en gardant les modifs

💡 Afficher les commandes
sh
git reset --soft HEAD~1

🗑️ Jeter les modifications non commités

💡 Afficher les commandes
sh
git reset --hard

Fichier spécifique

sh
git checkout HEAD -- filename.js

🕰️ Voyager dans le temps vers un état précédent (annuler presque tout)

💡 Afficher les commandes

Parfait pour : grosse erreur (rebase raté, branche supprimée, etc.) et besoin de revenir en arrière.

Étape 1 : trouver l’action passée

sh
git reflog

Étape 2 : réinitialiser vers un état précédent

sh
git reset --hard HEAD@{5}

(Remplacez HEAD@{5} par l’entrée du reflog à restaurer.)

Ce qui se passe

  1. git reflog affiche l’historique de vos actions (commits, merges, resets, etc.).
  2. git reset --hard réinitialise tout le dépôt à cet instant T (bouton d’annulation ultime).
  3. ⚠️ Commande puissante : détruit les changements non commités et réécrit l’historique.