Mettre à jour
Remarque: cette réponse a été écrite à l'origine en ce qui concerne les anciennes versions de SourceTree pour Windows et est désormais obsolète.
Voir ma nouvelle réponse pour la version actuelle de SourceTree pour Windows, 1.5.2.0 . Je laisse cette réponse derrière moi à des fins historiques.
Réponse originale
comme je suis sous Windows, je n'ai pas d'outil de ligne de commande et je ne sais pas comment en utiliser un :( Est-ce le seul moyen de faire le tri? L'interface graphique ne couvre pas toutes les fonctions de git? - Affiche originale
En ce qui concerne les interfaces graphiques Git, non, elles ne couvrent pas toutes les fonctions de Git . Ils ne s'approchent même pas . 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 déjà être fourni avec le shell bash msysgit, ou il peut être en mesure d'utiliser le shell de commande Windows standard. Dans les deux cas, vous l'ouvrez depuis SourceTree en cliquant sur le bouton Terminal:
Vous définissez ici quel terminal SourceTree utilise (bash ou Windows):
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 réellement réinitialiser, ce qui est une opération différente dans Git), voici les étapes:
- Effectuez une réinitialisation matérielle dans SourceTree pour le mauvais commit en cliquant dessus avec le bouton droit 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.
- Cliquez sur le bouton Valider, puis
- Cliquez sur la case à cocher en bas qui dit "Modifier le dernier commit".
- Apportez les modifications souhaitées au message, puis cliquez à nouveau sur Valider. Voila!
Concernant ce commentaire :
si ce n'est pas possible car il est déjà poussé vers Bitbucket, cela ne me dérangerait pas de créer un nouveau référentiel et de recommencer.
Est-ce à dire que vous êtes la seule personne à travailler sur le repo? Ceci est important car il n'est pas anodin de modifier l'historique d'un dépôt (comme en modifiant un commit) sans causer de problèmes à vos collaborateurs. Cependant, en supposant que vous êtes la seule personne à travailler sur le référentiel, la prochaine chose que vous voudriez faire est de forcer le transfert de votre historique modifié vers la télécommande.
Cependant, sachez que, parce que vous avez effectué une réinitialisation matérielle du commit défectueux, une poussée forcée vous fait perdre tout le travail qui l'a suivi précédemment. 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 la poussée vers un dépôt.
Cependant, vous devriez vraiment apprendre à utiliser Git à partir de la ligne de commande, cela vous rendra plus compétent dans Git. #ProTip, utilisez msysgit et activez le mode Édition rapide dans les propriétés du terminal, de sorte que vous pouvez double-cliquer pour mettre en surbrillance une ligne de texte, cliquer avec le bouton droit pour copier et cliquer à nouveau avec le bouton droit pour coller. C'est assez rapide.