Aggiornare
Nota: questa risposta è stata originariamente scritta per quanto riguarda le versioni precedenti di SourceTree per Windows ed è obsoleta.
Vedi la mia nuova risposta per l'attuale versione di SourceTree per Windows, 1.5.2.0 . Lascio questa risposta alle spalle per scopi storici.
Risposta originale
dato che sono su Windows non ho uno strumento da riga di comando né so come usarne uno :( È l'unico modo per risolverlo? La GUI non copre tutte le funzioni di git? - Poster originale
Per quanto riguarda le GUI di Git, no, non coprono tutte le funzioni di Git . Non si avvicinano nemmeno . Ti suggerisco di dare un'occhiata a una delle risposte in Come posso modificare un messaggio di commit errato in Git? , Git è abbastanza flessibile che ci sono più soluzioni ... dalla riga di comando.
SourceTree potrebbe effettivamente essere già dotato della shell bash msysgit o potrebbe essere in grado di utilizzare la shell dei comandi standard di Windows. Ad ogni modo, lo apri da SourceTree facendo clic sul pulsante Terminale:
Puoi impostare quale terminale SourceTree utilizza (bash o Windows) qui:
Un modo per risolvere il problema in SourceTree
Detto questo, ecco un modo per farlo in SourceTree. Dal momento che hai menzionato nei commenti che non ti dispiace "tornare al commit difettoso" (con il quale presumo che in realtà intendi resettare, che è un'operazione diversa in Git), allora ecco i passaggi:
- Eseguire un hard reset in SourceTree per il commit errato facendo clic con il tasto destro su di esso e selezionando
Reset current branch to this commit
e selezionando l'opzione di hard reset dal menu a discesa.
- Fai clic sul pulsante Commit, quindi
- Fai clic sulla casella di controllo in basso che dice "Modifica ultimo commit".
- Apporta le modifiche desiderate al messaggio, quindi fai di nuovo clic su Commit. Ecco!
Per quanto riguarda questo commento :
se non è possibile perché è già stato inviato a Bitbucket, non mi dispiacerebbe creare un nuovo repository e ricominciare da capo.
Questo significa che sei l'unica persona che lavora sul repository? Questo è importante perché non è banale cambiare la cronologia di un repository (come modificando un commit) senza causare problemi ai tuoi collaboratori. Tuttavia, supponendo che tu sia l'unica persona che lavora sul repository, la prossima cosa che vorresti fare è forzare a spingere la cronologia modificata sul telecomando.
Tieni presente, tuttavia, che poiché hai eseguito un hard reset del commit errato, la forzatura della spinta ti fa perdere tutto il lavoro che lo segue in precedenza. Se va bene, allora potresti aver bisogno di usare il seguente comando dalla riga di comando per eseguire il push forzato, perché non ho trovato un'opzione per farlo in SourceTree:
git push remote-repo head -f
Questo presuppone anche che BitBucket ti consentirà di forzare il push verso un repository.
Tuttavia, dovresti davvero imparare a usare Git dalla riga di comando, ti renderà più esperto in Git. Suggerimento, usa msysgit e attiva la modalità Modifica rapida nelle proprietà del terminale, in modo da poter fare doppio clic per evidenziare una riga di testo, fare clic con il tasto destro per copiare e fare nuovamente clic con il tasto destro per incollare. È abbastanza veloce.