216 votes

Git: Comment éditer / reformuler le message d'un commit de fusion?

Comment puis-je modifier ou de reformuler une fusion de commettre son message?

git commit --amend fonctionne si c'est le dernier commit effectué (HEAD), mais que si elle vient avant HEAD?

git rebase -i HEAD~5 n'a pas de liste de la fusion s'engage.

274voto

Mark Longair Points 93104

Si vous ajoutez l' --preserve-merges option (ou son synonyme, -p) à l' git rebase -i commande git va essayer de préserver la fusion lorsqu'changement d'année de base, plutôt que de linéarisant l'histoire, et vous devriez être en mesure de modifier la fusion s'engage ainsi:

git rebase -i -p HEAD~5

39voto

VonC Points 414372

Notez que, en commençant git1.7.9.6 (et git1.7.10+), git merge sera toujours déclencher l'éditeur, pour vous pour ajouter des détails à une fusion.

"git merge $tag" fusionner un annotée balise s'ouvre toujours l'éditeur de cours interactif de la session d'édition. v1.7.10 de la série introduit une variable d'environnement GIT_MERGE_AUTOEDIT pour aider les anciens scripts déclin de ce comportement, mais l'entretien de la piste devrait également soutenir.

Il a également introduit une variable d'environnement GIT_MERGE_AUTOEDIT pour aider les anciens scripts déclin de ce comportement.

Voir "Anticiper Git 1.7.10":

Récemment, lors d'une discussion sur le Git liste de diffusion, Linus admis (et je suis d'accord) que c'était l'une des erreurs de conception nous avons fait très tôt dans l'histoire de Git.
Et en 1.7.10 et plus tard, le git merge de commande qui est exécutée dans une session interactive (c'est à dire à la fois son entrée standard et la sortie standard connecté à un terminal), vous ouvrez un éditeur avant de créer un commit pour enregistrer le résultat de la fusion, pour donner à l'utilisateur la possibilité d'expliquer la fusion, tout comme la commande git commit l'utilisateur exécute après la résolution d'un conflit de fusion déjà fait.

Linus a dit:

Mais je n'ai pas vraiment de soins de profondément la façon dont il fonctionne réellement - mon principal problème est que git le rend trop facile à avoir de mauvaises fusion des messages.
Je crois que c'est encore plus simple idiotie: nous n'avons jamais même le feu jusqu'à l'éditeur par défaut pour un "git merge", mais nous ne pour un "git commit".
C'était une erreur de conception, et cela signifie que si vous souhaitez ajouter une note à une opération de fusion, vous devez faire un travail supplémentaire. Donc les gens n'ont pas
.

-1voto

ChrisD Points 53

L' git rebase -i HEAD~5 commande ouvre l'éditeur. Il dresse la liste des spécifié s'engage (dans ce cas, cinq d'entre eux). La première colonne contient pick pour chaque livraison. Il suffit de remplacer pick avec reword dans l'éditeur et de l'enregistrer+fermez l'éditeur. Puis git sera pop-up de l'éditeur pour chaque livraison où vous avez changé d' pick de reword et vous permettra de modifier le message de commit.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X