Aktualizacja
Uwaga: ta odpowiedź została pierwotnie napisana w odniesieniu do starszych wersji SourceTree dla Windows i jest obecnie nieaktualna.
Zobacz moją nową odpowiedź na aktualną wersję SourceTree dla Windows, 1.5.2.0 . Pozostawiam tę odpowiedź w celach historycznych.
Oryginalna odpowiedź
ponieważ jestem w systemie Windows, nie mam narzędzia wiersza polecenia ani nie wiem, jak go używać :( Czy to jedyny sposób, aby to rozwiązać? GUI nie obejmuje wszystkich funkcji gita? - Original Poster
Jeśli chodzi o GUI Git, nie, nie obejmują one wszystkich funkcji Git . Nawet się nie zbliżają . Sugeruję sprawdzenie jednej z odpowiedzi w Jak edytować niepoprawną wiadomość zatwierdzenia w Git? , Git jest na tyle elastyczny, że istnieje wiele rozwiązań ... z wiersza poleceń.
SourceTree może faktycznie być już dostępny z powłoką bash msysgit lub może być w stanie użyć standardowej powłoki poleceń Windows. Tak czy inaczej, otworzysz go z SourceTree, klikając przycisk Terminal:
Tutaj ustawiasz terminal, którego używa SourceTree (bash lub Windows):
Jednym ze sposobów rozwiązania problemu w SourceTree
Biorąc to pod uwagę, oto jeden ze sposobów, w jaki możesz to zrobić w SourceTree. Ponieważ w komentarzach wspomniałeś , że nie masz nic przeciwko „przywróceniu do błędnego zatwierdzenia” (przez co zakładam, że faktycznie masz na myśli resetowanie, co jest inną operacją w Git), oto kroki:
- Wykonaj twardy reset w SourceTree do złego zatwierdzenia, klikając go prawym przyciskiem myszy i wybierając
Reset current branch to this commit
, a następnie wybierając opcję twardego resetu z menu rozwijanego.
- Następnie kliknij przycisk Zatwierdź
- Kliknij pole wyboru na dole z napisem „Zmień najnowsze zatwierdzenie”.
- Wprowadź zmiany, które chcesz wprowadzić do wiadomości, a następnie ponownie kliknij Zatwierdź. Voila!
W odniesieniu do tego komentarza :
jeśli nie jest to możliwe, ponieważ zostało już przesłane do Bitbucket, nie miałbym nic przeciwko utworzeniu nowego repozytorium i rozpoczęciu od nowa.
Czy to oznacza, że jesteś jedyną osobą pracującą nad repozytorium? Jest to ważne, ponieważ zmiana historii repozytorium nie jest trywialna (na przykład poprzez zmianę zatwierdzenia) bez powodowania problemów dla współpracowników. Jednak zakładając, że jesteś jedyną osobą pracującą nad repozytorium, następną rzeczą, którą chciałbyś zrobić, jest wymuszenie wypchnięcia zmienionej historii do pilota.
Pamiętaj jednak, że ponieważ wykonałeś twardy reset błędnego zatwierdzenia, wówczas wymuszone wypychanie powoduje utratę całej pracy, która następuje po nim wcześniej. Jeśli to w porządku, może być konieczne użycie następującego polecenia w wierszu polecenia, aby wykonać wymuszenie, ponieważ nie mogłem znaleźć opcji, aby to zrobić w SourceTree:
git push remote-repo head -f
Zakłada się również, że BitBucket pozwoli ci wymusić wypchnięcie repo.
W każdym razie powinieneś naprawdę nauczyć się korzystać z Gita z wiersza poleceń, dzięki czemu będziesz bardziej biegły w Git. #ProTip, użyj msysgit i włącz tryb szybkiej edycji we właściwościach terminalu, abyś mógł dwukrotnie kliknąć, aby podświetlić wiersz tekstu, kliknąć prawym przyciskiem myszy, aby skopiować, i kliknąć ponownie prawym przyciskiem myszy, aby wkleić. To jest dość szybkie.