Quand j'en ai terminé avec une fonctionnalité, souvent ce que je voudrais, c'est de réparer automatiquement un commit suivi d'un push forcé vers une origine distante avant une fusion vers master.
Je finis par rebaser au-dessus de master pour pouvoir réparer un commit, parce que j'ai trouvé une petite chose que je veux changer et je ne veux pas que ce changement soit un commit séparé. Donc je rebase interactivement, je corrige le dernier commit, puis je force le push. Existe-t-il un moyen de le faire en une seule étape?
3 Réponses :
En supposant que vous vouliez réparer le dernier commit, vous pouvez simplement modifier ce commit. Après avoir créé vos modifications, émettez simplement:
-a, --all: Tell the command to automatically stage files that have been modified and deleted, but new files you have not told Git about are not affected. --amend: Replace the tip of the current branch by creating a new commit. --no-edit: Use the selected commit message without launching an editor. For example, `git commit --amend --no-edit` amends a commit without changing its commit message.
Vous devrez cependant forcer le push.
Voici une liste des options git commit utilisées ci-dessus:
$ git commit -a --amend --no-edit
Vous pouvez enregistrer l'étape d'édition manuelle de la liste des commits dans rebase -i
en utilisant git commit --fixup
lors de la validation de votre correction. Ensuite, si rebase.autoSquash
est défini sur true, git rebase -i
transformera automatiquement la ligne contenant ce commit en une ligne fixup
juste en dessous le commit à corriger.
git commit -a --amend --no-edit && git push -f