Modifier un message de validation dans SourceTree Windows (déjà transféré à distance)

Comment modifier un message de validation incorrect dans SourceTree sans toucher à la ligne de commande?

Détails supplémentaires:

  • Ce n’est pas le dernier commit.
  • Tout était déjà passé à Bitbucket.
  • Ceci est un repository privé et je suis le seul collaborateur.
  • Cela ne me dérange pas de perdre aucun des commits précédents, car je peux les réengager à tout moment.
  • Je ne veux cependant pas perdre les modifications de code jamais effectuées.

Résultat:

  • Comme il semble impossible pour le moment selon vos commentaires et réponses, je vais créer un nouveau repository et tout recommencer. Merci à tous pour votre aide!

Voici la procédure à suivre pour modifier le message de validation d’une validation précédente ( qui n’est pas la validation la plus récente ) à l’aide de SourceTree pour Windows version 1.5.2.0 :

Étape 1

Sélectionnez la validation immédiatement avant la validation que vous souhaitez modifier. Par exemple, si je souhaite modifier la validation avec le message “FOOBAR!” alors je dois sélectionner le commit qui le précède:

Sélectionner commit avant celui que je veux éditer.

Étape 2

Cliquez avec le bouton droit sur le commit sélectionné et cliquez sur Rebase children...interactively :

Sélectionner

Étape 3

Sélectionnez la validation à modifier, puis cliquez sur Edit Message en bas. Dans ce cas, je sélectionne le commit avec le message “FOOBAR!”:

Sélectionnez la validation à modifier.

Étape 4

Modifiez le message de validation, puis cliquez sur OK . Dans mon exemple, j’ai ajouté “SHAZBOT! SKADOOSH!”

Modifier le message de validation

Étape 5

Lorsque vous revenez à la fenêtre de rebase interactive, cliquez sur OK pour terminer le rebase:

Cliquez sur OK pour terminer.

Étape 6

À ce stade, vous devrez forcer vos nouvelles modifications depuis que vous avez rebaptisé les validations que vous avez déjà effectuées. Cependant, la version 1.5.2.0 actuelle de SourceTree pour Windows ne vous permet pas de forcer l’interface graphique, vous devrez donc utiliser Git depuis la ligne de commande pour cela.

Cliquez sur Terminal depuis l’interface graphique pour ouvrir un terminal.

Terminal de clic

Étape 7

Depuis le terminal, force-push avec la commande suivante,

 git push origin  -f 

est le nom de la twig que vous voulez pousser, et -f signifie forcer la poussée. La force push écrasera vos commits sur votre repo distant, mais ce n’est pas grave dans votre cas puisque vous avez dit que vous ne partagiez pas votre repo avec d’autres personnes.

C’est tout! Vous avez terminé!

Sur la version 1.9.6.1. Pour un commit non poncé.

  1. Cliquez sur la description précédemment validée
  2. Cliquez sur l’icône Valider
  3. Entrez un nouveau message de validation et choisissez ” Ammend latest commit ” dans la liste déroulante Commit options.
  4. Validez votre message

Mettre à jour

Remarque: cette réponse a été écrite à l’origine pour les anciennes versions de SourceTree pour Windows et est maintenant obsolète.

Voir ma nouvelle réponse pour la version actuelle de SourceTree pour Windows, 1.5.2.0 . Je laisse cette réponse à des fins historiques.

Réponse originale

comme je suis sur Windows je n’ai pas d’outil en ligne de commande et je ne sais pas en utiliser un 🙁 Est-ce la seule façon de régler le problème? L’interface graphique ne couvre pas toutes les fonctions de git? – Poster original

En ce qui concerne les interfaces graphiques de Git, non, elles ne couvrent pas toutes les fonctions de Git . Ils ne sont même pas proches . Je vous suggère de vérifier l’une des réponses dans Comment puis-je modifier un message de validation incorrect dans Git? Git est suffisamment flexible pour qu’il existe plusieurs solutions … à partir de la ligne de commande.

SourceTree peut en fait être fourni avec le shell msysgit bash ou utiliser le shell de commande Windows standard. De toute façon, vous l’ouvrez dans SourceTree en cliquant sur le bouton Terminal:

entrer la description de l'image ici

Vous définissez le terminal utilisé par SourceTree (bash ou Windows) ici:

entrer la description de l'image ici

Une façon de résoudre le problème dans SourceTree

Cela étant dit, voici une façon de le faire dans SourceTree. Puisque vous avez mentionné dans les commentaires que cela ne vous dérange pas de “revenir au commit défectueux” (par lequel je suppose que vous voulez dire réellement la réinitialisation, ce qui est une opération différente dans Git), voici les étapes:

  1. Effectuez une réinitialisation matérielle de la mauvaise validation dans SourceTree en cliquant dessus avec le bouton droit de la souris et en sélectionnant Reset current branch to this commit , puis en sélectionnant l’option de réinitialisation matérielle dans le menu déroulant. entrer la description de l'image ici
  2. Cliquez sur le bouton Valider, puis
  3. Cliquez sur la case en bas qui indique “Modifier le dernier commit”. entrer la description de l'image ici
  4. Apportez les modifications souhaitées au message, puis cliquez à nouveau sur Valider. Voila!

En ce qui concerne ce commentaire :

si ce n’est pas possible parce que cela a déjà été envoyé à Bitbucket, cela ne me dérangerait pas de créer un nouveau repository et de recommencer.

Est-ce que cela signifie que vous êtes la seule personne travaillant sur le repo? Ceci est important car il n’est pas sortingvial de changer l’historique d’un repository (comme en modifiant un commit) sans causer de problèmes à vos collaborateurs. Cependant, en supposant que vous soyez la seule personne à travailler sur le référentiel, la prochaine chose que vous voudrez faire est de forcer le transfert de votre historique modifié vers la télécommande.

Soyez conscient, cependant, que parce que vous avez effectué une réinitialisation matérielle du commit défectueux, le fait de pousser de force vous fait perdre tout le travail qui le précède. Si cela vous convient, vous devrez peut-être utiliser la commande suivante sur la ligne de commande pour effectuer la poussée forcée, car je n’ai pas trouvé d’option pour le faire dans SourceTree:

 git push remote-repo head -f 

Cela suppose également que BitBucket vous permettra de forcer une mise en pension.

De toute façon, vous devriez vraiment apprendre à utiliser Git depuis la ligne de commande, cela vous rendra plus compétent en Git. #ProTip, utilisez msysgit et activez le mode Modification rapide dans les propriétés du terminal, de sorte que vous puissiez double-cliquer pour mettre en surbrillance une ligne de texte, cliquez avec le bouton droit pour copier et cliquez de nouveau avec le bouton droit pour coller. C’est assez rapide.