J'ai écrit la mauvaise chose dans un message de validation.
Comment puis-je changer le message? Le commit n'a pas encore été poussé.
J'ai écrit la mauvaise chose dans un message de validation.
Comment puis-je changer le message? Le commit n'a pas encore été poussé.
Réponses:
git commit --amend
ouvrira votre éditeur, vous permettant de modifier le message de validation du commit le plus récent. De plus, vous pouvez définir le message de validation directement dans la ligne de commande avec:
git commit --amend -m "New commit message"
… Cependant, cela peut rendre les messages de validation sur plusieurs lignes ou les petites corrections plus difficiles à saisir.
Assurez - vous que vous ne disposez pas des modifications de la copie de travail mis en scène avant de le faire ou ils seront engagés aussi. ( Les modifications non planifiées ne seront pas validées.)
Si vous avez déjà poussé votre commit vers votre branche distante, alors - après avoir modifié votre commit localement (comme décrit ci-dessus) - vous devrez également forcer le push avec:
git push <remote> <branch> --force
# Or
git push <remote> <branch> -f
Avertissement: la poussée forcée écrasera la branche distante avec l'état de votre branche locale . S'il y a des commits sur la branche à distance que vous n'avez pas dans votre branche locale, vous allez perdre ces commits.
Avertissement: soyez prudent lorsque vous modifiez des commits que vous avez déjà partagés avec d'autres personnes. La modification des validations les réécrit essentiellement pour avoir des ID SHA différents , ce qui pose un problème si d'autres personnes ont des copies de l'ancienne validation que vous avez réécrite. Quiconque possède une copie de l'ancien commit devra synchroniser son travail avec votre commit nouvellement réécrit, ce qui peut parfois être difficile, alors assurez-vous de vous coordonner avec les autres lorsque vous essayez de réécrire l'historique des commit partagés, ou évitez simplement de réécrire les commits partagés tout à fait.
Une autre option consiste à utiliser un rebase interactif. Cela vous permet de modifier tout message que vous souhaitez mettre à jour même s'il ne s'agit pas du dernier message.
Afin de faire un squash Git, procédez comme suit:
// n is the number of commits up to the last commit you want to be able to edit
git rebase -i HEAD~n
Une fois que vous écrasez vos commits - choisissez le e/r
pour éditer le message:
Lorsque vous utilisez, git rebase -i HEAD~n
il peut y avoir plus de n validations. Git "collectera" toutes les validations dans les n dernières validations, et s'il y avait une fusion quelque part entre cette plage, vous verrez également toutes les validations, donc le résultat sera n +.
Si vous devez le faire pour plus d'une seule branche et que vous pouvez rencontrer des conflits lors de la modification du contenu, configurez git rerere
et laissez Git résoudre ces conflits automatiquement pour vous.
git commit --amend
n'est pas aussi puissant que git rebase -i
.
git commit --amend
peut réparer le maître (un?) Commettre.
git push -f origin branchname
git push -f
un peu dangereux si d'autres personnes utilisent le même référentiel?
git commit --amend -c HEAD
. Cela ouvrira l'éditeur pré-rempli avec votre ancien message de validation, vous pourrez donc le modifier.
git commit --amend -m "your new message"
Si le commit que vous souhaitez corriger n'est pas le plus récent:
git rebase --interactive $parent_of_flawed_commit
Si vous souhaitez corriger plusieurs validations défectueuses, passez le parent du plus ancien d'entre eux.
Un éditeur apparaîtra, avec une liste de tous les commits depuis celui que vous avez donné.
pick
à reword
(ou sur les anciennes versions de Git, à edit
) devant tous les commits que vous souhaitez corriger.Pour chaque commit que vous souhaitez reformuler , Git vous renverra dans votre éditeur. Pour chaque commit que vous souhaitez modifier , Git vous dépose dans le shell. Si vous êtes dans le shell:
git commit --amend
git rebase --continue
La plupart de cette séquence vous sera expliquée par la sortie des différentes commandes au fur et à mesure. C'est très facile; vous n'avez pas besoin de le mémoriser - rappelez-vous simplement que cela git rebase --interactive
vous permet de corriger les commits, peu importe leur ancienneté.
Notez que vous ne voudrez pas modifier les commits que vous avez déjà poussés. Ou peut-être que vous le faites, mais dans ce cas, vous devrez prendre grand soin de communiquer avec tous ceux qui peuvent avoir tiré vos engagements et effectué un travail par-dessus eux. Comment récupérer / resynchroniser après que quelqu'un a poussé un rebase ou une réinitialisation dans une branche publiée?
reword
à la place de pick
pour modifier le message du journal.
$parent_of_flawed_commit
est équivalent à $flawed_commit^
.
-p
( --preserve-merges
) s'il y a eu une fusion après la validation défectueuse.
Pour modifier le commit précédent, effectuez les modifications souhaitées et effectuez ces modifications, puis exécutez
git commit --amend
Cela ouvrira un fichier dans votre éditeur de texte représentant votre nouveau message de validation. Il commence avec le texte de votre ancien message de validation. Modifiez le message de validation comme vous le souhaitez, puis enregistrez le fichier et quittez votre éditeur pour terminer.
Pour modifier le commit précédent et conserver le même message de journal, exécutez
git commit --amend -C HEAD
Pour corriger le commit précédent en le supprimant entièrement, exécutez
git reset --hard HEAD^
Si vous souhaitez modifier plusieurs messages de validation, exécutez
git rebase -i HEAD~commit_count
(Remplacez commit_count par le nombre de validations que vous souhaitez modifier.) Cette commande lance votre éditeur. Marquez le premier commit (celui que vous voulez changer) comme "edit" au lieu de "pick", puis enregistrez et quittez votre éditeur. Apportez la modification que vous souhaitez valider, puis exécutez
git commit --amend
git rebase --continue
Remarque: Vous pouvez également "Apporter la modification souhaitée" à partir de l'éditeur ouvert par git commit --amend
git rebase -i HEAD~commit_count
vous permettra également de modifier les messages de validation du nombre de validations que vous choisissez. Il suffit de marquer les commits choisis comme "reformuler" au lieu de "choisir".
git reset --hard
annule les modifications non validées. Veuillez remplacer --hard
par --soft
.
git reset --hard
est une commande parfaitement légitime, mais elle est trompeuse compte tenu de la question. Vous utilisez --hard
si vous avez validé les modifications que vous souhaitez supprimer, pas si vous avez fait une faute de frappe dans le message de validation!
Comme déjà mentionné, git commit --amend
est le moyen d'écraser le dernier commit. Une remarque: si vous souhaitez également écraser les fichiers , la commande serait
git commit -a --amend -m "My new commit message"
git add file.ext
alors justegit commit --amend
Vous pouvez également l'utiliser git filter-branch
pour cela.
git filter-branch -f --msg-filter "sed 's/errror/error/'" $flawed_commit..HEAD
Ce n'est pas aussi facile qu'un trivial git commit --amend
, mais c'est particulièrement utile, si vous avez déjà quelques fusions après votre message de validation erroné.
Notez que cela va essayer de réécrire chaque commit entre HEAD
et le commit défectueux, vous devez donc choisir votre msg-filter
commande très judicieusement ;-)
$flawed_commit^..HEAD
, non $flawed_commit..HEAD
. comme indiqué par la page de manuel: « La commande ne réécrira que les références positives mentionnées dans la ligne de commande (par exemple si vous passez a..b, seul b sera réécrit). »
Je préfère cette façon:
git commit --amend -c <commit ID>
Sinon, il y aura une nouvelle validation avec un nouvel ID de validation.
-c
fait quelques choses. Il utilise l'ancien message par défaut, mais il copie également les informations sur la paternité (personne et heure). -C
fait la même chose sauf qu'il ne vous demande pas de modifier le message.
fatal: Option -m cannot be combined with -c/-C/-F/--fixup.
Si vous utilisez l'outil Git GUI, il existe un bouton nommé Modifier le dernier commit . Cliquez sur ce bouton, puis il affichera vos derniers fichiers de validation et message. Modifiez simplement ce message et vous pouvez le valider avec un nouveau message de validation.
Ou utilisez cette commande depuis une console / un terminal:
git commit -a --amend -m "My new commit message"
Vous pouvez utiliser le rebasage Git . Par exemple, si vous souhaitez modifier à nouveau pour valider bbc643cd, exécutez
$ git rebase bbc643cd^ --interactive
Dans l'éditeur par défaut, modifiez «choisir» pour «modifier» dans la ligne dont vous souhaitez modifier la validation. Apportez vos modifications, puis mettez-les en scène avec
$ git add <filepattern>
Vous pouvez maintenant utiliser
$ git commit --amend
pour modifier le commit, et après cela
$ git rebase --continue
pour revenir au commit de tête précédent.
git commit --amend
pris effet, vous pouvez l'utiliser git show
et il affichera le nouveau message.
Si vous souhaitez uniquement modifier votre dernier message de validation, procédez comme suit:
git commit --amend
Cela vous déposera dans votre éditeur de texte et vous permettra de modifier le dernier message de validation.
Si vous souhaitez modifier les trois derniers messages de validation, ou l'un des messages de validation jusqu'à ce point, fournissez HEAD~3
à la git rebase -i
commande:
git rebase -i HEAD~3
git commit --amend
, et il dit aussi que vous pouvez utiliser git rebase -i HEAD~commit_count
, tout ce que vous avez été prise en 3
pour commit_count
.
Si vous devez modifier un ancien message de validation sur plusieurs branches (c'est-à-dire que la validation avec le message erroné est présente dans plusieurs branches), vous pouvez utiliser:
git filter-branch -f --msg-filter \
'sed "s/<old message>/<new message>/g"' -- --all
Git créera un répertoire temporaire pour la réécriture et sauvegardera également les anciennes références dans refs/original/
.
-f
imposera l'exécution de l'opération. Cela est nécessaire si le répertoire temporaire est déjà présent ou s'il y a déjà des références stockées sous refs/original
. Si ce n'est pas le cas, vous pouvez supprimer ce drapeau.
--
sépare les options de branche de filtre des options de révision.
--all
s'assurera que toutes les branches et balises sont réécrites.
En raison de la sauvegarde de vos anciennes références, vous pouvez facilement revenir à l'état avant d'exécuter la commande.
Dites, vous voulez récupérer votre maître et y accéder en succursale old_master
:
git checkout -b old_master refs/original/refs/heads/master
git commit --amend
pour corriger des commentaires ou ajouter des fichiers que j'ai oublié à git add
, mais jamais avant que je git push
n'Éd. J'utilise également git filter-branch
quand je veux totalement gâcher l'historique des versions, mais l'OP ne le veut pas, donc cette réponse a besoin d'un gros avertissement de santé - n'essayez pas cela à la maison, peeps !!
Utilisation
git commit --amend
Pour le comprendre en détail, un excellent article est 4. Rewriting Git History . Il indique également quand ne pas l'utiliser git commit --amend
.
git commit --amend
réponse avait déjà été donnée (plusieurs fois) avant que vous écriviez la vôtre. Pourquoi l'avez-vous posté à nouveau? Si vous vouliez ajouter un lien vers "Rewriting Git History", vous auriez pu modifier l'une des réponses existantes ou laisser un commentaire.
Vous avez quelques options ici. Tu peux faire
git commit --amend
tant que c'est votre dernier commit.
Sinon, si ce n'est pas votre dernier commit, vous pouvez faire un rebase interactif,
git rebase -i [branched_from] [hash before commit]
Ensuite, à l'intérieur du rebase interactif, vous ajoutez simplement la modification à ce commit. Quand il apparaît, faites un git commit --amend
et modifiez le message de validation. Si vous souhaitez annuler avant ce point de validation, vous pouvez également utiliser git reflog
et simplement supprimer cette validation. Ensuite, vous faites à git commit
nouveau.
Si c'est votre dernier commit, modifiez simplement le commit:
git commit --amend -o -m "New commit message"
(Utilisation de l' indicateur -o
( --only
) pour vous assurer de ne modifier que le message de validation)
S'il s'agit d'un commit enterré, utilisez la redéfinition interactive impressionnante :
git rebase -i @~9 # Show the last 9 commits in a text editor
Recherchez le commit que vous souhaitez, passez pick
à r
( reword
), puis enregistrez et fermez le fichier. Terminé!
Tutoriel Miniature Vim (ou comment rebaser avec seulement 8 touches 3j
cw
r
EscZZ
):
vimtutor
si vous avez le tempsh
j
k
l
correspondent aux touches de mouvement ←↓↑→3j
descend de trois lignesi
pour entrer en mode insertion - le texte que vous tapez apparaîtra dans le fichierc
pour quitter le mode insertion et revenir au mode "normal"u
défairer
refairedd
, dw
, dl
Supprimer une ligne, un mot ou une lettre, respectivementcc
, cw
, cl
, Respectivement changer une ligne, un mot ou lettre (comme dd
i
)yy
, yw
, yl
Copier ( « Yank ») une ligne, un mot ou une lettre, respectivementp
ou P
pour coller respectivement après ou avant la position actuelle:w
Enter enregistrer (écrire) un fichier:q!
Enter quitter sans enregistrer:wq
Enterou ZZ
pour enregistrer et quitterSi vous modifiez beaucoup de texte, passez à la disposition du clavier Dvorak , apprenez à taper et apprenez Vim. Cela en vaut-il la peine? Oui.
ProTip ™: N'ayez pas peur d'expérimenter avec des commandes "dangereuses" qui réécrivent l'historique * - Git ne supprime pas vos validations pendant 90 jours par défaut; vous pouvez les trouver dans le reflog:
$ git reset @~3 # Go back three commits
$ git reflog
c4f708b HEAD@{0}: reset: moving to @~3
2c52489 HEAD@{1}: commit: more changes
4a5246d HEAD@{2}: commit: make important changes
e8571e4 HEAD@{3}: commit: make some changes
... earlier commits ...
$ git reset 2c52489
... and you're back where you started
* Méfiez-vous des options comme --hard
et --force
bien - ils peuvent éliminer les données.
* De plus, ne réécrivez pas l'historique sur les branches sur lesquelles vous collaborez.
nano
? Nous parlons de modifications insignifiantes qui doivent être apportées à un fichier texte, pas de codage hardcore qui générerait une guerre de flamme sur le "meilleur" éditeur de texte.
ddjjpZZ
déplace un commit 2 vers le bas. La connaissance de base de Vim n'a rien d'arcane; il faut 10 minutes pour devenir plus à l'aise avec Vim qu'avec nano.
Si vous utilisez l'interface graphique Git, vous pouvez modifier le dernier commit qui n'a pas été poussé avec:
Commit/Amend Last Commit
J'utilise autant que possible l' interface graphique de Git , et cela vous donne la possibilité de modifier le dernier commit:
En outre, git rebase -i origin/master
c'est un joli mantra qui vous présentera toujours les commits que vous avez effectués sur Master, et vous donnera la possibilité de modifier, supprimer, réorganiser ou écraser. Pas besoin de mettre la main sur ce hachage en premier.
Wow, il y a donc beaucoup de façons de le faire.
Une autre façon de procéder consiste à supprimer le dernier commit, mais à conserver ses modifications afin de ne pas perdre votre travail. Vous pouvez ensuite faire un autre commit avec le message corrigé. Cela ressemblerait à quelque chose comme ceci:
git reset --soft HEAD~1
git commit -m 'New and corrected commit message'
Je fais toujours cela si j'oublie d'ajouter un fichier ou de faire un changement.
N'oubliez pas de spécifier --soft
au lieu de --hard
, sinon vous perdez entièrement ce commit.
git commit --amend
sauf qu'il s'agit d'un processus en 2 étapes.
--amend
conservera les informations sur l'auteur, mais la question ne demande que de modifier le message.
Pour tous ceux qui recherchent une interface graphique Windows / Mac pour aider à modifier les messages plus anciens (c'est-à-dire pas seulement le dernier message), je recommanderais Sourcetree . Les étapes à suivre sont ci-dessous.
Pour les validations qui n'ont pas encore été transmises à une télécommande:
Unable to create 'project_path/.git/index.lock': File exists.
lors de la tentative de modification de plusieurs messages de validation en même temps. Je ne sais pas exactement quel est le problème, ni s'il sera résolu dans une future version de Sourcetree, mais si cela se produit, je recommanderais de les rebaser un par un (plus lent mais semble plus fiable).... Ou ... pour les commits qui ont déjà été poussés:
Suivez les étapes de cette réponse , qui sont similaires à celles ci-dessus, mais nécessitent qu'une autre commande soit exécutée à partir de la ligne de commande ( git push origin <branch> -f
) pour forcer le branchement. Je recommanderais de tout lire et d'appliquer la prudence nécessaire!
Si vous souhaitez simplement modifier le dernier commit, utilisez:
git commit --amend
ou
git commit --amend -m 'one line message'
Mais si vous souhaitez modifier plusieurs validations d'affilée, vous devriez plutôt utiliser le rebasage:
git rebase -i <hash of one commit before the wrong commit>
Dans un fichier, comme celui ci-dessus, écrivez edit/e
ou l'une des autres options, puis appuyez sur Enregistrer et quitter.
Vous serez maintenant au premier mauvais commit. Apportez des modifications dans les fichiers et ils seront automatiquement mis en scène pour vous. Type
git commit --amend
Enregistrez et quittez cela et tapez
git rebase --continue
pour passer à la sélection suivante jusqu'à ce que vous ayez terminé toutes vos sélections.
Notez que ces choses changent tous vos hachages SHA après ce commit particulier.
Si vous souhaitez uniquement modifier votre dernier message, vous devez utiliser l' --only
indicateur ou son raccourci -o
avec commit --amend
:
git commit --amend -o -m "New commit message"
Cela garantit que vous n'améliorez pas accidentellement votre validation avec des éléments mis en scène. Bien sûr, il est préférable d'avoir une $EDITOR
configuration appropriée . Ensuite, vous pouvez laisser l' -m
option désactivée, et Git pré-remplira le message de validation avec l'ancien. De cette façon, il peut être facilement édité.
git commit --amend
. La question était très précise, donc plus longue! = Mieux. La mention décisive du -o
drapeau serait probablement enfouie dans le reste des informations. Je ne suis pas non plus à l'aise de modifier une réponse qui a déjà tant de votes.
--only
option avec --amend
est disponible depuis git 1.3.0, elle ne fonctionnait pas correctement jusqu'à ce qu'elle soit corrigée dans 1.7.11.3 ( ea2d4ed35902ce15959965ab86d80527731a177c ). Ainsi , le dos de bonne réponse en 2008 aurait probablement été quelque chose comme: git stash; git commit --amend; git stash pop
.
Mettez à jour votre dernier message de validation incorrect avec le nouveau message de validation sur une seule ligne:
git commit --amend -m "your new commit message"
Ou essayez Git reset comme ci-dessous:
# You can reset your head to n number of commit
# NOT a good idea for changing last commit message,
# but you can get an idea to split commit into multiple commits
git reset --soft HEAD^
# It will reset you last commit. Now, you
# can re-commit it with new commit message.
git reset
peut également vous aider à diviser un commit en plusieurs commit:
# Reset your head. I am resetting to last commits:
git reset --soft HEAD^
# (You can reset multiple commit by doing HEAD~2(no. of commits)
# Now, reset your head for splitting it to multiple commits
git reset HEAD
# Add and commit your files separately to make multiple commits: e.g
git add app/
git commit -m "add all files in app directory"
git add config/
git commit -m "add all files in config directory"
Ici, vous avez réussi à diviser votre dernier commit en deux commits.
git commit --amend
, exactement comme il est dit dans la réponse la plus votée . En outre, git reset --soft HEAD^
fonctionne de manière identique à la réinitialisation logicielle dans cette réponse précédente , car ils sont tous les deux réinitialisés au premier commit parent.
git reset
la solution juste pour donner une idée de diviser un message de validation en plusieurs messages de validation. Parce que, j'ai rencontré ce problème quand, je commençais à utiliser git
. Parfois, cela peut être très utile. :)
Sur cette question, il existe de nombreuses réponses, mais aucune d'entre elles n'explique en détail comment modifier les anciens messages de validation à l'aide de Vim . J'étais coincé à essayer de le faire moi-même, alors ici, je vais écrire en détail comment j'ai fait cela, en particulier pour les personnes qui n'ont aucune expérience à Vim!
Je voulais modifier mes cinq derniers commits que j'ai déjà envoyés au serveur. C'est assez «dangereux» car si quelqu'un d'autre s'en est déjà tiré, vous pouvez gâcher les choses en modifiant les messages de validation. Cependant, lorsque vous travaillez sur votre propre petite branche et que vous êtes sûr que personne ne l'a tirée, vous pouvez la changer comme ceci:
Imaginons que vous souhaitiez modifier vos cinq derniers commits, puis saisissez ceci dans le terminal:
git rebase -i HEAD~5
* Où 5 est le nombre de messages de commit que vous voulez changer (donc si vous voulez changer le 10ème au dernier commit, vous tapez 10).
Cette commande vous amènera dans Vim où vous pourrez «modifier» votre historique de commit. Vous verrez vos cinq derniers commits en haut comme ceci:
pick <commit hash> commit message
Au lieu de pick
vous devez écrire reword
. Vous pouvez le faire dans Vim en tapant i
. Cela vous fait passer en mode insertion . (Vous voyez que vous êtes en mode d'insertion par le mot INSERT en bas.) Pour les commits que vous souhaitez modifier, tapez à la reword
place de pick
.
Ensuite, vous devez enregistrer et quitter cet écran. Pour ce faire, Escpassez d'abord en «mode commande» en appuyant sur le bouton (vous pouvez vérifier que vous êtes en mode commande si le mot INSERT en bas a disparu). Ensuite, vous pouvez taper une commande en tapant :
. La commande pour enregistrer et quitter est wq
. Donc, si vous tapez, :wq
vous êtes sur la bonne voie.
Ensuite, Vim examinera chaque message de validation que vous souhaitez reformuler, et ici vous pouvez réellement modifier les messages de validation. Pour ce faire, passez en mode insertion, modifiez le message de validation, passez en mode commande, puis enregistrez et quittez. Faites-le cinq fois et vous êtes hors de Vim!
Ensuite, si vous avez déjà poussé vos mauvais commits, vous devez les git push --force
écraser. N'oubliez pas que git push --force
c'est une chose assez dangereuse à faire, alors assurez-vous que personne ne s'est retiré du serveur puisque vous avez poussé vos mauvais commits!
Vous avez maintenant changé vos messages de validation!
(Comme vous le voyez, je ne suis pas très expérimenté à Vim, donc si j'ai utilisé le mauvais 'jargon' pour expliquer ce qui se passe, n'hésitez pas à me corriger!)
<nitpick>
Il n'y a pas de "threads" sur Stack Overflow, car ce n'est pas un forum de discussion, il n'y a que des "questions", des "réponses" et des "publications". </nitpick>
. De plus, toutes les versions de Vim ne sont pas identiques, toutes ne vous permettront pas de supprimer des caractères en mode d'insertion (cela a du sens en quelque sorte, non?). Si vous voulez toujours pouvoir supprimer des caractères dans Vim, X
et x
que vous ferez cela (les petits x
supprime les caractères devant le curseur, X
seront supprimés derrière). Si vous faites des erreurs, vous pouvez utiliser à u
plusieurs reprises pour annuler. Enfin, r
est un raccourci pour reword
dans l'éditeur de rebase interactif.
cw
tapé à son début (bien que la question ne concerne pas vim, je suis d'accord).
nano
ou mcedit de Midnight Commander.
Vous pouvez utiliser git-rebase-reword
Il est conçu pour éditer n'importe quel commit (pas seulement le dernier) de la même manière que commit --amend
$ git rebase-reword <commit-or-refname>
Il est nommé d'après l'action sur rebase interactive pour modifier un commit: "reword". Voir cet article et man -section mode interactif-
Exemples:
$ git rebase-reword b68f560
$ git rebase-reword HEAD^
g c; g rb -i @~9
(commit et rebase), déplacer le nouveau commit là où je le veux, changer commit
en f
( fixup
) et sauvegarder. Si vous vouliez quelque chose de plus rapide que cela, vous pourriez alias git commit --fixup=<commit>; git rebase -i --autosquash <commit>^
J'ai ajouté les alias reci
et recm
pour recommit (amend)
cela. Maintenant je peux le faire avec git recm
ou git recm -m
:
$ vim ~/.gitconfig
[alias]
......
cm = commit
reci = commit --amend
recm = commit --amend
......
J'ai réalisé que j'avais poussé un commit avec une faute de frappe dedans. Pour annuler, j'ai fait ce qui suit:
git commit --amend -m "T-1000, advanced prototype"
git push --force
Avertissement: pousser de force vos modifications écrasera la branche distante avec votre branche locale. Assurez-vous que vous n'écraserez pas tout ce que vous souhaitez conserver. Soyez également prudent lorsque vous forcez à pousser un commit modifié (réécrit) si quelqu'un d'autre partage la branche avec vous, car il devra réécrire sa propre histoire s'il a l'ancienne copie du commit que vous venez de réécrire.
J'aime utiliser ce qui suit:
git status
git add --all
git commit -am "message goes here about the change"
git pull <origin master>
git push <origin master>
Si vous n'avez pas poussé le code vers votre branche distante ( GitHub / Bitbucket ), vous pouvez modifier le message de validation sur la ligne de commande comme ci-dessous.
git commit --amend -m "Your new message"
Si vous travaillez sur une branche spécifique, procédez comme suit:
git commit --amend -m "BRANCH-NAME: new message"
Si vous avez déjà poussé le code avec le mauvais message et que vous devez être prudent lorsque vous modifiez le message. Autrement dit, après avoir modifié le message de validation et essayé de le pousser à nouveau, vous vous retrouvez avec des problèmes. Pour le rendre lisse, suivez ces étapes.
Veuillez lire l'intégralité de ma réponse avant de le faire.
git commit --amend -m "BRANCH-NAME : your new message"
git push -f origin BRANCH-NAME # Not a best practice. Read below why?
Remarque importante: lorsque vous utilisez directement la poussée forcée, vous pouvez vous retrouver avec des problèmes de code que d'autres développeurs travaillent sur la même branche. Donc, pour éviter ces conflits, vous devez extraire le code de votre branche avant de faire le push de force :
git commit --amend -m "BRANCH-NAME : your new message"
git pull origin BRANCH-NAME
git push -f origin BRANCH-NAME
Il s'agit de la meilleure pratique lors de la modification du message de validation, s'il a déjà été poussé.