Disons que j'ai 3 commits non poussés. Maintenant, je veux changer le message de validation du premier ou deuxième commit (les changer pour le troisième est simple en utilisant git commit --amend
). Comment faire ça?Comment modifier le message de validation d'une validation dans git?
Répondre
rebondir sur la sous-question: est-il un git commit --amend
pour une précédente commit (et pas seulement le dernier), vous pouvez essayer quelque chose comme (non encore testé, mais Colin O'Dell mentionne dans the comments avoir écrit un script pour elle colinodell/git-amend-old):
git checkout -b tmp
git reset --hard HEAD~2
git commit -amend
git rebase --onto tmp [email protected]{1} master
Ce serait comme:
x---x---x---x---x
^
|
(master*) (* = current branch)
git checkout -b tmp
x---x---x---x---x
^
|
(tmp*, master)
git reset --hard HEAD~2
x---x---x---x---x
^ ^
| |
(tmp*) (master)
git commit -amend
y (tmp*)
/
x---x---x---x---x
| ^
([email protected]{1}) |
(master)
git rebase --onto tmp [email protected]{1} master
(tmp)
y---x'---x' (master*)
/
x---x---x---x---x (only referenced in reflog)
Sur le 'rebase --onto', voir http://stackoverflow.com/questions/1994463/how-to-cherry-pick-a-range-of-commits-and-merge-into-another-branch/1994491 # 1994491 – VonC
Pourquoi s'embêter? rebase -i est beaucoup plus simple – CharlesB
@CharlesB: Je suis d'accord, 'rebase -i' est plus simple, mais il est aussi * interactif *. Cela signifie que vous ne pouvez pas l'inclure dans un script ou dans un alias regroupant une séquence de commandes. – VonC
Il s'agit d'un travail pour la puissante commande git rebase -i
. Consultez également la section Interactive Rebasing du livre Git.
Peut-être une question stupide, mais 'git rebase -i' peut-il être utilisé de manière non interactive? – Mot
Non, pas en tant que tel. Cependant, tout ce que 'git rebase -i' peut faire (en théorie) en utilisant d'autres commandes Git scriptables. Il serait donc possible d'écrire un script pour modifier un message de commit précédent, mais je ne sais pas si une telle chose existe encore. –
félicitations sur votre 15ème badge d'or;) Vous êtes maintenant un vrai git! (Err ... git-guru, je voulais dire) (je veux dire, gourou sur le nom de l'outil git) (je veux dire, vous savez ce que je veux dire) – VonC
- 1. Modifier l'ancien message de validation sur Git
- 2. Modifier la validation racine dans Git?
- 3. Modifier le message de validation SVN rétroactivement?
- 4. Imprimer le message de validation d'un commit donné dans git
- 5. Message de validation
- 6. jquery message de validation
- 7. Message d'erreur de validation jQuery
- 8. message d'erreur: validation clientide
- 9. JSF Validation message
- 10. DDV_MinMaxUInt: Message de validation personnalisé
- 11. Rails override validation message
- 12. Comment modifier une demande de validation?
- 13. Git, modifier la validation racine pour toutes les branches
- 14. problème gettext avec le message de validation
- 15. Message de validation manquant dans l'application cakephp
- 16. comment corriger l'erreur: message pathspec lors de la validation dans git?
- 17. comment trouver le message de validation par auteur?
- 18. Git crochet de courrier électronique pour inclure le message de validation et les fichiers modifiés
- 19. comment obtenir {0} dans struts2 Message de validation de zone
- 20. Changing message d'erreur de validation jquery
- 21. La manière la plus simple de modifier le message de validation requis sur le site
- 22. Comment modifier la validation initiale dans un référentiel github?
- 23. Comment modifier le temps de validation (pas encore activé)?
- 24. Message d'erreur de validation de l'espace vide
- 25. cakephp Message de règle de validation personnalisée
- 26. Erreur de message de validation Rails?
- 27. Message de validation WPF au format Xml
- 28. Comment modifier le message d'erreur de validation Struts2 dans le cas d'une valeur de champ non valide?
- 29. jQuery un message de validation datepicker question
- 30. Comment obtenir le nom des commiters + message de validation dans la ligne d'objet de Git hook post-receive
C'est un peu semblable à http://stackoverflow.com/questions/3926768/amend-a-commit-that-wasnt-the -previous-commit. J'ai essayé (ci-dessous) de voir comment 'commit --amend' pourrait être scripté. Laissez-moi savoir si cela fonctionne. – VonC