1
votes

Git: correction automatique d'un commit dans une branche de fonctionnalité

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?


0 commentaires

3 Réponses :


3
votes

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


0 commentaires

4
votes

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.


0 commentaires

0
votes
git commit -a --amend --no-edit && git push -f

0 commentaires