Cheatsheet Git
Commandes et conseils Git pour consulter les changements, préparer des commits, annuler des modifications et travailler avec une branche distante.
Cas d’usage
1) J’ai modifié des choses, mais quoi ? Voir le journal et les différences
1
2
3
git status
git diff
git diff --staged
2) Je veux ne valider qu’une partie de mes changements
À utiliser quand vous avez corrigé deux choses, mais voulez créer deux commits distincts.
1
git add -p
3) J’ai préparé le mauvais fichier
À utiliser si vous avez lancé git add . trop vite.
1
git restore --staged file
4) Je veux supprimer mes modifications locales
À utiliser si vous avez cassé quelque chose et voulez revenir à l’état précédent.
1
git restore file
5) Mon dernier commit est incorrect (message ou contenu)
À utiliser si vous avez oublié un fichier ou si le message du commit est mauvais (avant l’envoi).
1
2
git add <file>
git commit --amend
6) Le dépôt distant a de nouveaux commits et je veux garder un historique propre
À utiliser quand vous et d’autres personnes poussez des changements sur la même branche et que vous avez aussi des commits locaux.
1
2
git fetch
git log --oneline --graph --decorate --all
puis
1
git rebase #Puts your local commits on top of the updated remote (rewrites commit IDs).
ou
1
git merge #Combines the two histories with a merge commit if diverged.
7) Le rebase a provoqué des conflits : comment le terminer ou l’annuler ?
À utiliser pendant pull --rebase.
1
2
3
4
git add <fixed-files>
git rebase --continue
# or cancel:
git rebase --abort
8) Je dois récupérer les changements, mais je ne suis pas prêt à valider mon travail
À utiliser quand vous avez des modifications en cours que vous n’avez pas validées ou ne voulez pas valider.
1
2
3
git stash
git pull --rebase
git stash pop
9) J’ai déjà poussé un mauvais commit : comment l’annuler sans risque ?
À utiliser sur une branche partagée qu’un collègue a déjà récupérée.
1
git revert <commit>
10) Je veux annuler des commits locaux (s’ils n’ont pas été poussés)
À utiliser pour nettoyer votre historique local.
1
2
git reset HEAD~1 # keep changes (unstaged)
git reset --hard HEAD~1 # delete changes (danger)
Mes autres alias dans les fichiers de configuration .bashrc
1
2
3
4
5
6
7
alias gs='git status'
alias g='git '
lg() {
[ -d .git ] || { echo "Not a git repo"; return; }
git add . && git commit -m "$*" && git push
}
Extension VSCodium recommandée
Utilisez Git Graph de mhutchie pour afficher le graphe des commits des dépôts ; vous pouvez même effectuer des actions Git depuis ce graphe.
Puis :
1
Ctrl + shift + g
Voici un exemple de commits et de fusion de branche :
Mon fichier ~/.gitconfig (exemple de départ)
À utiliser pour personnaliser l’identité, les alias, l’éditeur et les options pratiques par défaut.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[user]
name = Alxblzd
email = 69093161+alxblzd@users.noreply.github.com
[core]
editor = vi
excludesfile = ~/.gitignoregbl # Global ignore file
[color]
ui = auto
[alias]
st = status
ci = commit
co = checkout
br = branch
lg = log --oneline --graph --decorate --all
df = diff
hist = log --oneline --decorate --graph --all --date=short
unstage = restore --staged
amend = commit --amend --no-edit
[merge]
tool = vimdiff # Or meld if you prefer
[push]
default = simple
[credential]
helper = cache --timeout=3600 # Optional, secure credential caching
[rebase]
autoStash = true
Mots-clés
- dépôt : le projet et son historique
- commit : instantané enregistré
- arbre de travail : vos fichiers modifiés
- index (staging) : ce qui entrera dans le prochain commit
- HEAD : l’endroit où vous vous trouvez actuellement
- branche : étiquette mobile pointant vers un commit (
main,dev) - dépôt distant : copie sur un serveur (
origin) - fetch : télécharge les informations distantes sans modifier les fichiers
- pull : fetch suivi d’une intégration (merge ou rebase)
- merge : combine les historiques (peut créer un commit de fusion)
- rebase : rejoue vos commits sur une autre base (réécrit les identifiants de commit)
- conflit : Git ne peut pas fusionner automatiquement un fichier
- stash : met temporairement de côté le travail non validé
- revert : annule un changement au moyen d’un nouveau commit (sûr après un push)
- reset : déplace le pointeur de branche vers l’arrière (réécrit l’historique ; à utiliser avec précaution)
