GIT -Faire un fixup avec git
15 oct. 2019
Il souvent m'est arrivé de faire plusieurs commits touchant une seule fonctionnalité ou fichier et toutes ces modifications sont éparpillées dans plusieurs commits. Il est possible de fusionner tout cela grâce au fixup de git.
Le fixup permet de pousser une correction qui est liée à un autre commit. Une fois que vous avez ajouté vos modifications au dépôt local (git add .), il faut envoyer vos modifications avec l'option fixup
Il va créer un message de commit avec "fixup!" en préfixe et comme contenu le message du commit indiqué dans la commande.
Il reste plus qu'à utiliser la commande rebase qui permet d'appliquer les commits sur une nouvelle base (ici HEAD~3)
L'option interactive avec autosquash permet de garder le message du commit original en lui appliquant les modifications du fixup
L'intérêt est que les commit intercalés entre le commit où l'on veut faire le rebase 8cc3ea5 et le fixup sont conservés (ici
46eee4d existe encore).
blog comments powered by Disqus
Le fixup permet de pousser une correction qui est liée à un autre commit. Une fois que vous avez ajouté vos modifications au dépôt local (git add .), il faut envoyer vos modifications avec l'option fixup
> git add .
> git commit --fixup 7cd748e
[master cd184f6] fixup! Update README
1 file changed, 1 insertion(+), 1 deletion(-)
Il va créer un message de commit avec "fixup!" en préfixe et comme contenu le message du commit indiqué dans la commande.
> git log --oneline
cd184f6 (HEAD -> master) fixup! Update README
8935d65 Add feature
7cd748e Update README
75ebe69 (origin/master) Initial commit
Il reste plus qu'à utiliser la commande rebase qui permet d'appliquer les commits sur une nouvelle base (ici HEAD~3)
> git rebase -i --autosquash HEAD~3 #sans -i cela ne fonctionne pas
L'option interactive avec autosquash permet de garder le message du commit original en lui appliquant les modifications du fixup
> git log --oneline
46eee4d (HEAD -> master) Add feature
8cc3ea5 Update README
75ebe69 (origin/master) Initial commit
L'intérêt est que les commit intercalés entre le commit où l'on veut faire le rebase 8cc3ea5 et le fixup sont conservés (ici
46eee4d existe encore).