Aide-mémoire Git
Une référence Git imprimable et consultable — configuration, branches, fusion, rebasage, dépôts distants, remisage, étiquettes et annulation des modifications. Gratuit.
Installation et config
10git config --global user.name "Jane Doe"
Définir le nom associé à vos commits
git config --global user.email "jane@example.com"
Définir l'e-mail associé à vos commits
git config --global init.defaultBranch main
Démarrer les nouveaux dépôts sur une branche "main"
git config --global core.editor "code --wait"
Utiliser VS Code comme éditeur Git par défaut
git config --global pull.rebase true
Rebaser au lieu de fusionner lors d'un pull
git config --global alias.co checkout
Créer un alias raccourci (git co)
git config --global --list
Lister toutes les valeurs de config globales
git config user.email
Afficher l'e-mail du dépôt courant
git config --global color.ui auto
Activer la sortie colorée en ligne de commande
git help <command>
Ouvrir la page de manuel d'une commande
Créer et cloner des dépôts
9git init
Initialiser un dépôt dans le dossier courant
git init my-project
Créer un dépôt dans un nouveau répertoire
git clone https://example.com/repo.git
Cloner un dépôt distant via HTTPS
git clone git@example.com:user/repo.git
Cloner un dépôt distant via SSH
git clone <url> my-dir
Cloner dans un répertoire au nom précis
git clone --depth 1 <url>
Clone superficiel avec le dernier commit seulement
git clone --branch dev <url>
Cloner et basculer sur une branche précise
git clone --recurse-submodules <url>
Cloner et initialiser tous les sous-modules
git remote add origin <url>
Attacher un distant à un dépôt local existant
Indexation et commit
11git add file.txt
Indexer un seul fichier pour le prochain commit
git add .
Indexer toutes les modifications du répertoire courant
git add -A
Indexer toutes les modifications, suppressions incluses
git add -p
Indexer interactivement des sections choisies
git commit -m "Add login form"
Committer les changements indexés avec un message
git commit -am "Fix typo"
Indexer les fichiers suivis et committer en une étape
git commit --amend
Modifier le commit le plus récent
git commit --amend --no-edit
Ajouter les changements indexés au dernier commit
git rm file.txt
Supprimer un fichier et indexer la suppression
git mv old.txt new.txt
Renommer ou déplacer un fichier et l'indexer
git reset file.txt
Désindexer un fichier en gardant ses changements
Branches
10git branch
Lister toutes les branches locales
git branch -a
Lister les branches locales et de suivi distant
git switch -c feature/login
Créer une branche et basculer dessus
git switch main
Basculer sur une branche existante
git checkout -b hotfix
Méthode classique pour créer et changer de branche
git branch -m old-name new-name
Renommer une branche
git branch -d feature/login
Supprimer une branche locale fusionnée
git branch -D feature/login
Forcer la suppression d'une branche non fusionnée
git push origin --delete feature/login
Supprimer une branche sur le distant
git switch -
Revenir à la branche précédente
Fusion et rebase
10git merge feature/login
Fusionner une branche dans la branche courante
git merge --no-ff feature/login
Fusionner en créant toujours un commit de fusion
git merge --squash feature/login
Combiner une branche en un seul changement indexé
git merge --abort
Annuler une fusion avec conflits
git rebase main
Rejouer les commits de la branche courante sur main
git rebase -i HEAD~3
Modifier interactivement les 3 derniers commits
git rebase --continue
Reprendre un rebase après résolution des conflits
git rebase --abort
Annuler un rebase en cours
git cherry-pick <hash>
Appliquer un commit sur la branche courante
git mergetool
Lancer un outil pour résoudre les conflits de fusion
Distants et synchronisation
11git remote -v
Lister les distants configurés et leurs URL
git remote add upstream <url>
Ajouter un second distant nommé upstream
git remote set-url origin <url>
Changer l'URL d'un distant existant
git fetch
Télécharger les changements distants sans fusionner
git fetch --all --prune
Récupérer tous les distants et purger les branches obsolètes
git pull
Récupérer et intégrer les changements distants
git pull --rebase
Pull en rebasant les commits locaux par-dessus
git push
Envoyer les commits locaux vers le distant
git push -u origin main
Pousser et définir la branche de suivi upstream
git push --force-with-lease
Forcer le push sans écraser le travail des autres
git push origin --tags
Pousser tous les tags locaux vers le distant
Inspection et comparaison
10git status
Afficher fichiers indexés, non indexés et non suivis
git status -s
Afficher l'état en format court compact
git diff
Afficher les changements non indexés par rapport à l'index
git diff --staged
Afficher les changements indexés pour le prochain commit
git diff main..feature
Comparer deux branches
git diff HEAD~1 HEAD
Comparer le dernier commit avec son parent
git show <hash>
Afficher les détails et le diff d'un commit
git show HEAD:file.txt
Afficher un fichier tel qu'il était dans un commit
git log --stat
Afficher les commits avec un résumé des fichiers modifiés
git shortlog -sn
Compter les commits groupés par auteur
Annuler des changements
10git restore file.txt
Abandonner les changements non indexés d'un fichier
git restore --staged file.txt
Désindexer un fichier en gardant ses changements
git restore --source=HEAD~1 file.txt
Restaurer un fichier depuis un commit antérieur
git checkout -- file.txt
Méthode classique pour abandonner les changements locaux
git reset --soft HEAD~1
Annuler le dernier commit, garder les changements indexés
git reset --mixed HEAD~1
Annuler le dernier commit, changements non indexés
git reset --hard HEAD~1
Annuler le dernier commit et abandonner les changements
git revert <hash>
Créer un commit qui en annule un autre
git clean -fd
Supprimer fichiers et répertoires non suivis
git clean -nd
Prévisualiser ce que clean supprimerait
Remisage (stash)
10git stash
Sauver les changements non committés et nettoyer l'arbre
git stash push -m "wip"
Remiser les changements avec un message descriptif
git stash -u
Remiser en incluant les fichiers non suivis
git stash list
Lister tous les jeux de changements remisés
git stash show -p
Afficher le diff du dernier remisage
git stash apply
Réappliquer le dernier remisage en le gardant
git stash pop
Réappliquer le dernier remisage et le supprimer
git stash apply stash@{2}
Réappliquer un remisage précis par index
git stash drop stash@{0}
Supprimer une entrée de remisage
git stash clear
Supprimer toutes les entrées de remisage
Tags
9git tag
Lister tous les tags
git tag v1.0.0
Créer un tag léger sur HEAD
git tag -a v1.0.0 -m "Release 1.0.0"
Créer un tag annoté avec un message
git tag -a v1.0.0 <hash>
Taguer un commit passé précis
git show v1.0.0
Afficher les détails d'un tag
git push origin v1.0.0
Pousser un seul tag vers le distant
git push origin --tags
Pousser tous les tags locaux vers le distant
git tag -d v1.0.0
Supprimer un tag localement
git push origin --delete v1.0.0
Supprimer un tag sur le distant
Journaux et historique
12git log
Afficher l'historique complet des commits
git log --oneline
Afficher un journal compact, une ligne par commit
git log --oneline --graph --all
Visualiser les branches en graphe ASCII
git log -p
Afficher l'historique des commits avec les diffs
git log --author="Jane"
Filtrer l'historique par auteur
git log --since="2 weeks ago"
Filtrer l'historique par plage de dates
git log --pretty=format:"%h %an %s"
Personnaliser le format de sortie du journal
git blame file.txt
Afficher qui a modifié chaque ligne en dernier
git reflog
Afficher l'historique des positions de HEAD
git bisect start
Lancer une recherche binaire d'un commit fautif
git bisect good <hash>
Marquer un commit comme bon pendant un bisect
git bisect bad
Marquer le commit courant comme mauvais
Aucune entrée ne correspond à « :q ».
Besoin d'aide ?
Un problème avec cet outil ? Signalez-le à notre équipe.