Pour des raisons paresseuses, j'ai poussé un tas de commits avec des messages par défaut et maintenant c'est devenu lourd, car je ne sais pas vraiment ce que j'ai changé dans chaque commit.
Comment modifier uniquement les messages des validations précédentes et (si possible) conserver l'arborescence des validations?
Réponses:
Pour modifier les messages de validation d'une série de validations, je lance
où
firstsha
est un identifiant pour le commit parent du premier commit que je veux éditer. (Vous pouvez utiliser n'importe quelle référence valide ici, doncgit rebase -i HEAD~4
affichera les quatre derniers commits.)Dans l'éditeur qui s'ouvre, changez toutes les entrées «pick» en «reword» sur les commits que vous souhaitez modifier, puis fermez l'éditeur; il vous sera alors demandé de saisir des messages de validation pour tous les validations que vous avez choisies.
Notez que cela va changer le commit arbre, parce que les hash des commits changeront. Vous devrez forcer votre nouvel arbre ou le pousser vers une nouvelle branche. Cela gâchera également les fusions, évitez donc de modifier les validations de fusion.
Pour modifier rapidement uniquement le dernier commit, exécutez
(mais méfiez-vous de tout ce qui est organisé pour la validation)
la source
preserve-merges
)Ce que vous cherchez, c'est
git rebase
.Si vous souhaitez uniquement modifier le
git commit
message précédent , il vous suffit d'utiliser les éléments suivants:Et apportez les modifications souhaitées au commit précédent, puis enregistrez les modifications.
Cependant, si vous devez modifier des commits plus anciens, vous devez les utiliser
rebase
.où N est égal au nombre de validations dans lesquelles vous souhaitez revenir, par exemple 2 ou 12 ou 6, etc. etc.
Ici, vous devriez obtenir un éditeur de texte avec vos validations. Modifiez l'option de
pick
àreword
pour modifier le message.Une fois que vous avez identifié tous les commits que vous souhaitez modifier et que vous avez correctement modifié leurs options, enregistrez et fermez l'éditeur. Apportez ensuite les modifications à chaque message de validation. Une fois que vous êtes satisfait, vous pouvez exécuter:
Et vous devriez avoir conservé votre historique git, bien qu'avec des valeurs de hachage différentes, car vous avez apporté les modifications nécessaires que vous souhaitez. Voici quelques liens supplémentaires que vous devriez consulter:
7.6 Outils Git - Historique de réécriture
Aide GitHub - Modification d'un message de
validation StackOverflow - Question sur la modification des anciens messages de validation
la source
commit --amend
», à moins que vous ne gâchiez le processus de validation d'une manière ou d'une autre.git rebase -i firstsha
celafirstsha
est le hachage du commit parent du commit que je voudrais changer le message, puis dans l'éditeur, changerpick
enreword
,enter
nouveau message, puis émettregit rebase --continue
et fairegit push --force
?git rebase -i HEAD~N
avec N étant le nombre de validations que vous souhaitez retourner. Modifiez chaque option de validation dont vous souhaitez modifier le message depick
àreword
, enregistrez ce fichier, apportez les modifications à chacun de ces fichiers de validation et enregistrez-les. Une fois que vous êtes sûr d'avoir terminé, vous n'avez besoin que degit push --force [Name of git branch you are were working on]
. Vous pouvez toujours revenir en arrière et recommencer ou le faire par étapes.