Git protip : ajouter en un clin d’œil des modifs oubliées à un vieux commit
La procédure complète
Tu ajoutes tes fichiers oubliés au stage.
Tu fais un git commit --fixup=<ref-du-commit-à-corriger>
.
Tu lances ton rebase interactif en partant du commit précédent celui à corriger : git rebase --autosquash -i -r <ref-du-commit-à-corriger>~1
.
Ton éditeur s’ouvre, te propose la liste des actions à réaliser avec le fixup au bon endroit. Tu n’as plus qu’à enregistrer et fermer ce fichier, et le tour est joué ! Pense à vérifier ton log pour être sûr que tout est bon, éventuellement en faisant un git show --name-only <ref-du-nouveau-commit>
pour vérifier la liste des fichiers impactés par le commit corrigé.
pick 3f0714b chore(dx): setup ESLint and Prettier
fixup 61eecda fixup! chore(dx): setup ESLint and Prettier
pick 9a7cf39 chore(dx): setup Husky, lint-staged, precommit-checks, commitlint
Comme ça m’arrive de temps en temps, je me suis fait un alias “magique” 🧙♂️ qui consiste à appeler ces deux commandes en une fois (pour corriger un seul commit) :
# N’oublie pas d’ajouter tes fichiers dans le *stage* avant de lancer la commande
git config --global alias.autofixup '!git commit --fixup $1 && git rebase --autosquash --interactive --rebase-merges $1~1 && echo "autofixup finished"'
Et voilà !
Tu peux aussi regarder le programme de notre formation "Comprendre Git" ou nous poser tes questions sur notre forum discord.