Оновлення
Примітка: ця відповідь спочатку була написана стосовно старіших версій SourceTree для Windows, а тепер застаріла.
Дивіться мою нову відповідь на поточну версію SourceTree для Windows, 1.5.2.0 . Цю відповідь я залишаю позаду в історичних цілях.
Оригінальний відповідь
так як я в Windows, у мене немає інструменту командного рядка, і я не знаю, як ним користуватися :( Це єдиний спосіб розібратися в цьому? Графічний інтерфейс не охоплює всіх функцій git? - Оригінальний плакат
Що стосується графічних інтерфейсів Git , вони не охоплюють усіх функцій Git . Вони навіть не підходять близько . Я пропоную вам перевірити один із відповідей у розділі Як редагувати неправильне повідомлення про фіксацію в Git? , Git досить гнучка, що існує декілька рішень ... з командного рядка.
SourceTree може фактично поставлятися з оболонкою bash msysgit, або він може використовувати стандартну командну оболонку 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 і ввімкніть режим швидкого редагування у властивостях терміналу, щоб ви могли двічі клацнути, щоб виділити рядок тексту, клацніть правою кнопкою миші, щоб скопіювати, і правою кнопкою миші знову вставте. Це досить швидко.