Modifier le message de validation git dans GitHub


173

Existe-t-il un moyen de modifier en ligne le message de validation dans GitHub.com après sa soumission?

Depuis la ligne de commande, on peut faire

git commit --amend -m "New commit message"

comme correctement suggéré dans une autre question .

Essayer git pullet a ensuite git pushfonctionné (sans qu'aucun autre commit n'ait interféré entre-temps).

Mais cela peut-il être fait via le GitHubsite Web?


Veuillez consulter la réponse de @ DanGreen-Leipciger même si ce n'est pas celle acceptée.
RBT

Réponses:


101

Non, ce n'est pas directement possible. Le hachage pour chaque commit Git est également calculé en fonction du message de commit. Lorsque vous modifiez le message de validation, vous modifiez le hachage de validation. Si vous voulez pousser ce commit, vous devez forcer ce push (git push -f). Mais si quelqu'un a déjà retiré votre ancien commit et commencé un travail basé sur ce commit, il devrait rebaser son travail sur votre nouveau commit.


Je pourrais aussi faire git pull puis git push et ça a marché. Mais apparemment, il n'y a pas de moyen en ligne.
PNS

Toujours pas possible au 5 avril 2016
bigT

Et je suppose que ce ne sera pas une priorité élevée, car vous changeriez l'historique de commit d'une branche déjà publiée, ce que vous ne devriez jamais faire (sauf si vous êtes sûr à 200% que personne d'autre n'a cette branche sur sa machine locale).
dunni

Ce n'est qu'à moitié vrai. C'est vrai, mais seulement avec des hypothèses. La réponse serait meilleure si elle était combinée avec celle de @DanGreen (ci-dessous). Ce n'est pas "directement possible", et cela s'accompagne certainement d'avertissements (c'est-à-dire: "vous ne devriez" jamais "faire ça ... [sauf quand vous êtes sûr de vouloir le faire]") - mais simplement dire ce n'est pas possible, quand cela est techniquement possible, est une réponse incomplète.
Bane

1
L'OP a demandé s'il était possible de le faire en ligne sur le site Web de Github. AFAIK ce n'est toujours pas possible. Ma réponse est donc valide, et la réponse de Dan Green ne traite que de la façon de le faire localement, pas sur le site Web de Githubs.
dunni

145

Les instructions de GitHub pour cela:

  1. Sur la ligne de commande, accédez au référentiel contenant le commit que vous souhaitez modifier.
  2. Tapez git commit --amendet appuyez sur Entrée.
  3. Dans votre éditeur de texte, modifiez le message de validation et enregistrez la validation.
  4. Utilisez la git push --force example-branchcommande pour forcer le transfert de l'ancien commit.

Source: https://help.github.com/articles/changing-a-commit-message/


11
FAITES ATTENTION! La différence entre l'utilisation de <git commit --amend> & <Enter> et <git commit --amend -m "new commit message"> est que dans le 1er cas, vous éditez votre message de commit dans un éditeur de texte & dans le 2ème vous le remplacez par le "nouveau message de validation". Si vous forcez le push, cela remplacera le commit sur votre télécommande. Cela ne résout PAS le problème que si d'autres personnes de votre équipe ont retiré le commit précédent, vous avez maintenant des historiques différents (y compris des commits différents) sur différentes machines. Si vous savez que personne n'a retiré votre engagement, c'est sûr. Lire la source Dan a posté
TMin

7
git commit --amenda toujours existé. De plus, vous êtes confus entre git (qui est un outil de ligne de commande open source) et Github (qui est une société fournissant un hébergement de source en ligne).
vinyll

1
L'OP a posé des questions à propos de GitHub, et plus précisément après que le commit ait été poussé sur leurs serveurs. Ce sont les instructions de GitHub pour faire ce que l'OP a demandé.
Dan Green-Leipciger

3
@ DanGreen-Leipciger - oui, mais cela ne se fait pas sur le site Web lui-même, mais en utilisant la ligne de commande. Je pense que PNS voulait faire cela à partir de l'interface Web.
PhistucK

2
L'OP a demandé comment le faire avec GitHub spécifiquement, voici comment le faire avec GitHub spécifiquement.
Dan Green-Leipciger

30

Vous devez git push -fsupposer que personne n'a auparavant retiré l'autre commit. Attention, vous changez l'histoire.


3

Non, car le message de validation est lié au SHA / hachage de validation, et si nous le modifions, le SHA de validation est également modifié. La façon dont j'ai utilisé est de créer un commentaire sur ce commit. Je ne peux pas penser autrement.


2

Pour les utilisateurs d'intellij: Si vous souhaitez apporter des modifications de manière interactive pour les validations passées, qui ne sont pas poussées, suivez les étapes ci-dessous dans Intellij :

  • Sélectionnez Contrôle de version
  • Sélectionnez Journal
  • Cliquez avec le bouton droit sur le commit pour lequel vous souhaitez modifier le commentaire
  • Cliquez sur reformuler
  • Terminé

J'espère que ça aide


0

J'étais confronté au même problème.

Voyez dans votre github pour une branche particulière et vous apprendrez à connaître l'ID de commit du tout premier commit dans cette branche. faites un rebase à cela:

git rebase -i

l'éditeur s'ouvrira. Faites une trace de vos commits à partir de l'interface utilisateur de github et de l'éditeur ouvert et modifiez les messages.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.