Aktualisieren
Hinweis: Diese Antwort wurde ursprünglich in Bezug auf ältere Versionen von SourceTree für Windows geschrieben und ist jetzt veraltet.
Siehe meine neue Antwort für die aktuelle Version von SourceTree für Windows, 1.5.2.0 . Ich lasse diese Antwort aus historischen Gründen zurück.
Ursprüngliche Antwort
Da ich unter Windows bin, habe ich weder ein Befehlszeilentool noch weiß ich, wie man eines verwendet :( Ist dies die einzige Möglichkeit, dies zu klären? Die GUI deckt nicht alle Funktionen des Git ab? - Original Poster
Nein, Git-GUIs decken nicht alle Funktionen von Git ab . Sie kommen nicht einmal nahe . Ich schlage vor, Sie lesen eine der Antworten in Wie bearbeite ich eine falsche Commit-Nachricht in Git? Git ist flexibel genug, dass es mehrere Lösungen gibt ... über die Befehlszeile.
SourceTree wird möglicherweise bereits mit der msysgit-Bash-Shell geliefert, oder es kann möglicherweise die Standard-Windows-Befehlsshell verwenden. In beiden Fällen öffnen Sie es in SourceTree, indem Sie auf die Schaltfläche Terminal klicken:
Hier legen Sie fest, welches Terminal SourceTree verwendet (Bash oder Windows):
Eine Möglichkeit, das Problem in SourceTree zu lösen
Abgesehen davon, hier ist eine Möglichkeit, wie Sie dies in SourceTree tun können. Da Sie in den Kommentaren erwähnt haben, dass es Ihnen nichts ausmacht, "zum fehlerhaften Commit zurückzukehren" (womit Sie vermutlich das Zurücksetzen meinen, was in Git eine andere Operation ist), sind hier die Schritte:
- Führen Sie in SourceTree einen Hard-Reset für das fehlerhafte Commit durch, indem Sie mit der rechten Maustaste darauf klicken
Reset current branch to this commit
und die Hard-Reset-Option aus der Dropdown- Liste auswählen und auswählen.
- Klicken Sie dann auf die Schaltfläche Festschreiben
- Klicken Sie unten auf das Kontrollkästchen "Letztes Commit ändern".
- Nehmen Sie die gewünschten Änderungen an der Nachricht vor und klicken Sie erneut auf Festschreiben. Voila!
Zu diesem Kommentar :
Wenn dies nicht möglich ist, weil es bereits an Bitbucket gesendet wurde, würde es mir nichts ausmachen, ein neues Repository zu erstellen und von vorne zu beginnen.
Bedeutet das, dass Sie die einzige Person sind, die am Repo arbeitet? Dies ist wichtig, da es nicht trivial ist, den Verlauf eines Repos zu ändern (z. B. durch Ändern eines Commits), ohne Ihren Mitarbeitern Probleme zu bereiten. Angenommen, Sie sind die einzige Person, die am Repo arbeitet, dann möchten Sie als Nächstes Ihren geänderten Verlauf zwangsweise auf die Fernbedienung übertragen.
Beachten Sie jedoch, dass Sie durch erzwungenes Drücken alle Arbeiten ausführen, die zuvor ausgeführt wurden, da Sie das fehlerhafte Festschreiben hart zurückgesetzt haben. Wenn das in Ordnung ist, müssen Sie möglicherweise den folgenden Befehl in der Befehlszeile verwenden, um den Force-Push auszuführen, da ich in SourceTree keine Option dafür gefunden habe:
git push remote-repo head -f
Dies setzt auch voraus, dass Sie mit BitBucket Push auf ein Repo erzwingen können.
Sie sollten jedoch trotzdem über die Befehlszeile lernen, wie man Git verwendet. Dadurch werden Sie mit Git besser vertraut. #ProTip, verwenden Sie msysgit und aktivieren Sie den Schnellbearbeitungsmodus in den Terminaleigenschaften, sodass Sie doppelklicken können, um eine Textzeile hervorzuheben, mit der rechten Maustaste zum Kopieren klicken und zum Einfügen erneut mit der rechten Maustaste klicken. Es ist ziemlich schnell.