📌 Aide-mémoire : Commandes Git essentielles et avancées
Retrouvez ici toutes les commandes clés pour versionner vos projets, gérer vos branches, nettoyer l'historique et résoudre les conflits. Utilisez la barre de recherche pour filtrer instantanément.
Initialiser un nouveau dépôt Git local dans le répertoire courantBases
git initCloner un dépôt distant localementBases
git clone <url_depot>Afficher l'état des fichiers modifiés, indexés et non suivisBases
git statusAjouter toutes les modifications du répertoire à la zone d'index (staging)Bases
git add .Ajouter interactivement des blocs de modifications (hunks) à l'indexAvancé
git add -pEnregistrer les modifications indexées avec un message descriptifBases
git commit -m "feat: message explicite"Intégrer les changements indexés au dernier commit sans modifier son messageAvancé
git commit --amend --no-editVisualiser l'historique complet des commits sous forme d'arbre compactHistorique
git log --oneline --graph --decorate --allAfficher les modifications non indexées par rapport au dernier commitBases
git diffAfficher les différences entre les fichiers indexés et le dernier commitBases
git diff --stagedCréer et basculer immédiatement sur une nouvelle branche localeBranches
git switch -c <nom-branche>Basculer sur une branche existanteBranches
git switch <nom-branche>Supprimer une branche locale fusionnée en toute sécuritéBranches
git branch -d <nom-branche>Forcer la suppression d'une branche locale, même non fusionnéeBranches
git branch -D <nom-branche>Récupérer les métadonnées distantes et supprimer les références de branches obsolètesRemote
git fetch --pruneMettre à jour la branche locale en rejouant ses commits au-dessus de la branche distanteRemote
git pull --rebase origin <branche>Pousser une nouvelle branche locale sur le serveur et configurer le trackingRemote
git push -u origin <branche>Forcer le push après un rebase en vérifiant qu'aucun commit tiers n'a été ajouté entre-tempsAvancé
git push --force-with-leaseMettre de côté les modifications en cours de travail avec un message descriptifStash
git stash push -m "sauvegarde temporaire"Réappliquer les dernières modifications remisées et les supprimer de la pileStash
git stash popLister l'ensemble des remises (stashes) en mémoireStash
git stash listFusionner la branche spécifiée dans la branche couranteBases
git merge <nom-branche>Démarrer un rebase interactif sur les n derniers commits pour combiner, modifier ou supprimerAvancé
git rebase -i HEAD~<n>Appliquer un commit précis provenant d'une autre branche sur la branche actuelleAvancé
git cherry-pick <commit_sha>Créer un nouveau commit qui annule rigoureusement les effets du commit cibléAvancé
git revert <commit_sha>Annuler le dernier commit tout en conservant les modifications dans la zone d'indexReset
git reset --soft HEAD~1Supprimer définitivement le dernier commit et annuler toutes les modifications associéesReset
git reset --hard HEAD~1Annuler les modifications non indexées d'un fichier dans l'espace de travailBases
git restore <fichier>Retirer un fichier de la zone d'index sans perdre ses modifications localesBases
git restore --staged <fichier>Afficher le journal de toutes les actions et déplacements de HEAD (idéal pour récupérer un commit perdu)Debug
git reflogLancer une recherche dichotomique automatique pour isoler le commit ayant introduit un bugDebug
git bisect start && git bisect bad && git bisect good <commit_ok>Supprimer tous les fichiers et dossiers non suivis (untracked) du répertoire de travailNettoyage
git clean -fd💡 Raccourcis et configurations globales recommandées
| Configuration / Commande | Description |
|---|---|
git config --global init.defaultBranch main | Définit main comme nom de branche par défaut pour tout nouveau dépôt. |
git config --global pull.rebase true | Configure git pull pour utiliser automatiquement le mode rebase plutôt qu'un commit de merge. |
git config --global rebase.autoStash true | Remise (stash) automatiquement le travail en cours avant un rebase, puis le réapplique. |
git config --global core.autocrlf input | Harmonise les fins de ligne (LF) sur Linux et macOS sans corrompre les fichiers. |
HEAD | Pointeur vers le commit courant sur la branche active. |
HEAD~1 / HEAD^ | Fait référence au parent direct du commit courant. |