Atualizar
Nota: esta resposta foi originalmente escrita em relação às versões mais antigas do SourceTree for Windows e agora está desatualizada.
Veja minha nova resposta para a versão atual do SourceTree for Windows, 1.5.2.0 . Estou deixando esta resposta para trás para fins históricos.
Resposta original
Como eu estou no Windows, não tenho uma ferramenta de linha de comando nem sei como usar uma :( É a única maneira de resolver isso? A GUI não cobre todas as funções do git? - Original Poster
Em relação às GUIs do Git, não, elas não cobrem todas as funções do Git .Eles nem chegam perto . Sugiro que você verifique uma das respostas em Como edito uma mensagem de confirmação incorreta no Git? , Git é flexível o suficiente para que haja várias soluções ... a partir da linha de comando.
O SourceTree pode já vir com o shell msysgit bash ou pode ser capaz de usar o shell de comando padrão do Windows. De qualquer forma, você o abre no SourceTree, clicando no botão Terminal:
Você define qual terminal o SourceTree usa (bash ou Windows) aqui:
Uma maneira de resolver o problema no SourceTree
Dito isto, aqui está uma maneira de fazer isso no SourceTree. Desde que você mencionou nos comentários que não se importa em "voltar ao commit defeituoso" (pelo qual eu suponho que você realmente quer dizer redefinir, que é uma operação diferente no Git), aqui estão as etapas:
- Faça uma redefinição forçada no SourceTree para a confirmação incorreta clicando com o botão direito do mouse e selecionando
Reset current branch to this commit
e selecionando a opção de suspensa.
- Clique no botão Confirmar
- Clique na caixa de seleção na parte inferior que diz "Alterar última confirmação".
- Faça as alterações desejadas na mensagem e clique em Confirmar novamente. Voila!
Em relação a este comentário :
se não for possível porque já foi enviado ao Bitbucket, eu não me importaria de criar um novo repositório e começar de novo.
Isso significa que você é a única pessoa que trabalha no repositório? Isso é importante porque não é trivial alterar o histórico de um repositório (como alterar um commit) sem causar problemas aos seus colaboradores. No entanto, supondo que você seja a única pessoa trabalhando no repositório, a próxima coisa que você gostaria de fazer é forçar o envio do histórico alterado para o controle remoto.
No entanto, esteja ciente de que, como você fez uma redefinição definitiva do comprometimento defeituoso, a força forçada faz com que você perca todo o trabalho que vem depois dele anteriormente. Se estiver tudo bem, talvez você precise usar o seguinte comando na linha de comando para fazer o push forçado, porque não consegui encontrar uma opção para fazer isso no SourceTree:
git push remote-repo head -f
Isso também pressupõe que o BitBucket permitirá que você force o envio para um repositório.
Você realmente deve aprender a usar o Git a partir da linha de comando, de qualquer maneira, isso o tornará mais proficiente no Git. #ProTip, use msysgit e ative o modo Edição rápida nas propriedades do terminal, para que você possa clicar duas vezes para destacar uma linha de texto, clicar com o botão direito do mouse para copiar e clicar com o botão direito do mouse novamente para colar. É bem rápido.