Git: Comment réutiliser / conserver les messages de validation après la réinitialisation de git?

En tant qu’utilisateur de Git, je rencontre régulièrement la situation, je dois retravailler un ou plusieurs commits d’une manière qui ne rentre pas dans --amend ou rebase -i avec des commits de correction. Je ferais généralement quelque chose comme

 git reset HEAD~1 # hack, fix, hack git commit -a # argh .. do I need to retype my message? 

Je prends très au sérieux les messages de composition composés. Ils contiennent généralement un texte plus grand avec des références et des justifications pour le changement. Jusqu’à présent, je suis très contrarié par le long processus de récupération de mon ancien message de validation via un git reflog , git log et copy & paste non sortingés.

Y a-t-il mieux pour y remédier? Et comment cela se passerait-il si mon compte comportait plus d’un engagement?

Edit: Après un peu de reflection à ce sujet, je pense que ce que je recherche, ce sont des fonctionnalités de type git stash pour les messages de validation où les modifications de correctifs / modifications ne sont pas appropriées.

Après une git reset , ce one-liner peut le faire:

 git commit --reuse-message=HEAD@{1} 

ou même plus court:

 git commit -C HEAD@{1} 

Vous pouvez utiliser les autres options fournies par @ user2718704 .

Lorsque vous exécutez la commande “git commit”, vous devez vérifier les options suivantes,

Réutilliser,

 --reuse-message= 

Modifier en réutilisation,

 --reedit-message= 

Pour changer l’auteur,

 --reset-author 

Pourquoi réinitialiser si vous pouvez pirater, réparer, pirater puis lancer git commit --amend --no-edit ; ainsi, en conservant votre message de validation original.

Pour que cela fonctionne pour plusieurs commits, créez simplement un commit temporaire avec vos dernières modifications, puis utilisez un rebase interactif pour écraser le précédent commit (contenant le bon message de validation) avec le nouveau commit temporaire, en conservant le message de validation de l’ancien commit.

Vous pouvez considérer git commit --reset-author -c pour réutiliser le message de validation avec l’édition et l’heure actuelle.