Обновить
Примечание: этот ответ изначально был написан в отношении более старых версий SourceTree для Windows, и в настоящее время устарел.
Смотрите мой новый ответ для текущей версии SourceTree для Windows, 1.5.2.0 . Я оставляю этот ответ в исторических целях.
Оригинальный ответ
поскольку я в Windows, у меня нет инструмента командной строки, и я не знаю, как его использовать :( Это единственный способ разобраться? GUI не охватывает все функции git? - Оригинальный плакат
Что касается графических интерфейсов Git, нет, они не охватывают все функции Git . Они даже близко не подходят . Я предлагаю вам проверить один из ответов в разделе Как отредактировать неверное сообщение о коммите в Git? Git достаточно гибок, что есть несколько решений ... из командной строки.
На самом деле SourceTree может поставляться с оболочкой msysgit bash или может использовать стандартную командную оболочку Windows. В любом случае, вы открываете его из SourceTree, нажимая кнопку «Терминал»:
Вы устанавливаете, какой терминал SourceTree использует (bash или Windows) здесь:
Один из способов решения проблемы в SourceTree
При этом, вот один способ, которым вы можете сделать это в SourceTree. Так как вы упомянули в комментариях, что вы не возражаете против «возврата к ошибочному коммиту» (под которым я предполагаю, что вы на самом деле имеете в виду сброс, что является другой операцией в Git), то вот шаги:
- Сделайте полный сброс в SourceTree до плохого коммита, щелкнув по нему правой кнопкой мыши и выбрав
Reset current branch to this commit
, и выбрав опцию полного сброса из выпадающего списка.
- Нажмите кнопку «Выполнить», затем
- Нажмите на флажок внизу с надписью «Изменить последний коммит».
- Внесите необходимые изменения в сообщение, затем снова нажмите «Применить». Вуаля!
Что касается этого комментария :
если это невозможно, потому что оно уже отправлено в Bitbucket, я не против создать новый репозиторий и начать все сначала.
Значит ли это, что вы единственный человек, работающий в репо? Это важно, потому что нетрудно изменить историю репо (например, путем внесения изменений в коммит), не создавая проблем для ваших соавторов. Тем не менее, если предположить, что вы являетесь единственным человеком, работающим с репо, то следующее, что вы хотели бы сделать, это принудительно перенести вашу измененную историю на удаленный сервер.
Имейте в виду, однако, что, поскольку вы сделали полный сброс к ошибочному коммиту, то принудительное нажатие заставляет вас потерять всю работу, выполненную ранее. Если это нормально, то вам может потребоваться использовать следующую команду в командной строке для принудительного нажатия, потому что я не смог найти вариант сделать это в SourceTree:
git push remote-repo head -f
Это также предполагает, что BitBucket позволит вам принудительно сделать толчок к репо.
В любом случае вы должны действительно научиться использовать Git из командной строки, это сделает вас более опытным в Git. #ProTip, используйте msysgit и включите режим быстрого редактирования в свойствах терминала, чтобы вы могли дважды щелкнуть, чтобы выделить строку текста, щелкнуть правой кнопкой мыши, чтобы скопировать, и снова щелкнуть правой кнопкой мыши, чтобы вставить. Это довольно быстро.