Comment modifier un message de validation incorrect avec TortoiseGit?

Réponses:

161

Si le commit est la tête de la branche actuelle, c'est facile.

  1. Menu contextuel -> Git Commit
  2. Cochez la case "Modifier la dernière validation"
  3. Corrigez votre message de validation
  4. D'accord

Si le commit est la tête d'une autre branche, passez d'abord à cette branche.

  1. Menu contextuel -> TortoiseGit -> Switch / Checkout
  2. Choisissez le nom de la succursale
  3. D'accord
  4. Suivez les étapes 1 à 4 ci-dessus pour modifier le message de validation

Si le commit est au milieu sans aucune fusion entre la tête, vous devez réinitialiser, modifier et sélectionner

  1. Menu contextuel -> TortoiseGit -> Journal
  2. Sélectionnez le commit -> Menu contextuel -> Réinitialiser
  3. Réinitialisation matérielle ( cela supprimera tout le travail contenu dans les commits au-dessus du commit sélectionné ainsi que toutes les modifications non validées dans le répertoire de travail )
  4. D'accord
  5. Suivez les étapes 1 à 4 ci-dessus pour modifier le message de validation
  6. Sélectionnez de la tête à un commit au-dessus -> Menu contextuel -> Cherry-pick
  7. Continuer
linquiser
la source
12
Je manque vraiment le "Message de journal d'édition" de TortoiseSVN. Y a-t-il une chance qu'ils ajoutent une telle fonctionnalité?
Benoit Blanchon du
3
Je suis perdu à l'étape 6, qu'entendez-vous par "Sélectionner de la tête à un commit au-dessus" est-ce une option dans le menu contextuel?
Flethuseo
1
perdu à l'étape 6 aussi. aucune option de sélection de cerise nulle part, et je ne peux pas voir le commit ci-dessus dans tous les cas (dit simplement les changements de
répertoire de
13
Downvote parce que je pense que les suggestions dans le cas où le commit est au milieu m'ont amené à abandonner mes modifications de code jusqu'à ce commit, ce qui représente plusieurs semaines de travail.
Samuel
8
AVERTISSEMENT: utilisez "Créer une branche dans cette version" pour définir un nom de branche temporaire avant de réinitialiser le commit que vous souhaitez modifier. Sinon, vous risquez de perdre tous les commits au-dessus de ce point. (Si cela vous est déjà arrivé, git reflogvous aidera à les récupérer).
Steve Pitchers du
19

Pour le cas où le commit est au milieu, je recommande fortement de ne pas suivre les instructions fournies par linquize, voir les commentaires ci-dessous sa réponse pour la raison.

  1. Vous pouvez utiliser la ligne de commande git avec TortoiseGit et cela ne posera aucun problème: Puis-je utiliser simultanément les outils Git en ligne de commande et TortoiseGit? .

  2. Cette vidéo youtube l'explique très bien: http://youtu.be/4YjKY0u9Z6I . En gros, utilisez git rebase -i, puis "reformulez" simplement le message de validation.

Mise à jour: Je crois que vous pouvez récupérer les commits perdus à partir de la réinitialisation matérielle suggérée par linquize, voir la réponse de Wayne ici: Comment puis-je réorganiser / combiner des commits à l'aide de Git rebase? .

Samuel
la source
7
D'accord. git me prend incroyablement longtemps pour apprendre à utiliser, SVN était si simple. Le concept de git est simple, mais son utilisation ne l'est pas.
Samuel
TortoiseGit propose également un rebase interactif, vous n'avez pas besoin d'utiliser la ligne de commande pour cela.
Peter
13

Je dirais que la meilleure méthode pour modifier un message de validation est d'utiliser l' force rebaseoption dans tortoisegit.

Voir cette réponse sur Comment réorganiser les commits (rebase) avec TortoiseGit . La même méthode peut être utilisée pour modifier les messages de validation.

  • Lorsque vous êtes dans la boîte de dialogue de rebase, cliquez avec le bouton droit de la souris sur le commit que vous souhaitez modifier et sélectionnez l' Editoption. Vous pouvez choisir de modifier plusieurs commits.
  • Cliquez sur le Start Rebasebouton.
  • Rebase s'arrêtera aux validations pour lesquelles vous avez marqué Edit
  • Cliquez sur l' Commit Messageonglet en bas et modifiez le message
  • Cliquez sur le Amendbouton pour continuer
géoji
la source