Réponse de @Mureinik est bonne mais pas compréhensible par un débutant.
Première méthode:
- Si vous voulez seulement éditer le dernier message de validation, alors vous n'avez besoin que de
git commit --amend, vous verrez :
<your existing commit mesage foo bar>
# Please enter the commit message fir your changes. Lines starting
# with # will be ignored, and an empty message aborts the commit.
#
# Date: Sat Aug 24 17:56:16 2019 +0800
#
# On branch is up to date with 'origin/master'.
#
# changes to be committed:
# modified: foo.py
#
- Comme vous pouvez le voir, le message de validation en haut sans aucun préfixe de commande comme
pick, c'est déjà la page de modification et vous pouvez directement modifier le message en haut et sauvegarder&quitter, par exemple :
<your new correction commit message>
# Please enter the commit message for your changes. Lines starting
....
- Ensuite, faites
git push -u origin master --force ou <how you push normally> --force. La clé est ici --force.
Deuxième méthode:
Vous pouvez voir le hachage du commit par git log ou l'extraire de l'url du dépôt, par exemple dans mon cas c'est 881129d771219cfa29e6f6c2205851a2994a8835
Ensuite, vous pouvez faire git rebase --interactive 881129d771219cfa29e6f6c2205851a2994a8835 ou git rebase -i HEAD^ (si c'est le dernier)
Vous verriez :
pick <commit hash> <your current commit message>
# Rebase 8db7e8b..fa20af3 onto 8db7e8b
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
- Mais si vous voyez
noop alors vous avez probablement mal tapé, par exemple si vous faites git rebase -i 881129d771219cfa29e6f6c2205851a2994a88 ce qui manque ^ à la fin, vous feriez mieux de quitter l'éditeur sans sauvegarder et de trouver la raison :
noop
# Rebase 8db7e8b..fa20af3 onto 8db7e8b
...
- Si vous ne voyez pas
noop, alors changez simplement le mot pick en reword , l'autre reste juste (vous ne modifiez pas le message de validation à ce stade), e. g :
reword <commit hash> <your current commit message>
# Rebase 8db7e8b..fa20af3 onto 8db7e8b
#
# Commands:
# p, pick = use commit
...
- Save&quit affichera la page edit de la même manière que la méthode #1 :
<your existing commit mesage foo bar>
# Please enter the commit message fir your changes. Lines starting
# with # will be ignored, and an empty message aborts the commit.
#
# Date: Sat Aug 24 17:56:16 2019 +0800
#
# interactive rebase in progress; onto b057371
# Last command done (1 command done):
# reword d996ffb <existing commit message foo bar>
# No commands remaining.
# You are currently editing a commit while rebasing branch 'master' on 'b057371'.
#
# changes to be committed:
# modified: foo.py
#
- Editez le message du haut, de la même manière que la méthode #1 et save&quit, par exemple :
<your new correction commit message>
# Please enter the commit message for your changes. Lines starting
....
- Encore une fois, de la même manière que la méthode #1, faites
git push -u origin master --force ou <how you push normally> --force. La clé est ici --force.
Pour plus d'informations, veuillez lire le document .