138 votes

Git : Comment réutiliser ou conserver les messages de commit après un 'git reset' ?

En tant qu'utilisateur de Git, je suis régulièrement confronté à la situation où je dois retravailler un ou plusieurs commits d'une manière qui n'est pas compatible avec le système Git. --amend o rebase -i avec des commits de correction. Typiquement, je ferais 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 d'engagement composés de manière sensée. Ils contiennent généralement un texte plus long avec des références et des justifications pour le changement. Jusqu'à présent, je suis assez ennuyé par le long processus de récupération de mon ancien message de validation via un fichier non trié. git reflog , git log et le processus de copier-coller.

Y a-t-il une meilleure façon d'aborder ce problème ? Et comment cela se passerait-il, si je comprends plus d'un engagement ?

Editar: Après avoir réfléchi un peu, je pense que ce que je cherche est une sorte de git stash -Une fonctionnalité similaire pour les messages de commit lorsque les commits fixup/amend ne sont pas appropriés.

185voto

ibizaman Points 428

Après un git reset cette phrase 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 proposées par @user2718704 .

52voto

user2718704 Points 73

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

A réutiliser,

--reuse-message=<commit>

Pour éditer sur la réutilisation,

--reedit-message=<commit>

Pour changer l'auteur,

--reset-author

11voto

mart1n Points 2163

Pourquoi réinitialiser si tu peux pirater, réparer, pirater et ensuite juste courir. git commit --amend --no-edit ; ainsi, vous conservez votre message de livraison original.

Pour que cela fonctionne pour plusieurs commits, il suffit de créer un commit temporaire avec vos dernières modifications et ensuite d'utiliser un rebase interactif pour écraser le commit précédent (contenant le bon message de commit) avec le nouveau commit temporaire, en gardant le message de commit de l'ancien commit.

6voto

Joe Points 4894

Vous pourriez envisager git commit --reset-author -c <commit> pour réutiliser le message de validation avec l'édition et l'heure actuelle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X