Git protip : ajouter en un clin d’œil des modifs oubliées à un vieux commit

Par Maxime Bréhin • Publié le 17 octobre 2022 • 2 min

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 veux aller plus loin et maîtriser pleinement les fondamentaux de Git ou être accompagné pour garantir la qualité de tes projets grâce à une bonne mise en place de Git ? On peut t’aider ou te former, il suffit de nous décrire ton besoin !
Tu peux aussi regarder le programme de notre formation "Comprendre Git" ou nous poser tes questions sur notre forum discord.