Редактировать сообщение фиксации в Программа для Windows (уже нажал на пульт)


Как изменить неверное сообщение фиксации в SourceTree, не касаясь командной строки?

дополнительная информация:

  • это не последняя фиксация.
  • все уже было передвинуто в Bitbucket.
  • это частный репозиторий, и я единственный сотрудник.
  • Я не против потерять любой из предыдущих коммитов, так как я могу повторно совершить их в любое время.
  • Я не хочу терять модификация кода когда-либо производилась.

итог:

  • как это кажется невозможным на данный момент в соответствии с вашими комментариями и ответами, я собираюсь создать новый репозиторий и начать все сначала. Спасибо всем за помощь!
3 162

3 ответа:

вот шаги для редактирования сообщения фиксации предыдущей фиксации (что не самая последняя фиксация) через SourceTree для Windows версии 1.5.2.0:

Шаг 1

выберите commit перед фиксация, которую вы хотите изменить. Например, если я хочу отредактировать фиксацию с сообщением " FOOBAR!- тогда мне нужно ... чтобы выбрать фиксацию, которая приходит прямо перед это:

Selecting commit before the one that I want to edit.

Шаг 2

щелкните правой кнопкой мыши на выбранной фиксации и нажмите кнопку Rebase children...interactively:

Selecting "Rebase children interactively".

Шаг 3

выберите фиксацию, которую вы хотите изменить, затем нажмите Edit Message в дно. В этом случае я выбираю фиксацию с сообщением " FOOBAR!":

Select the commit that you want to edit.

Шаг 4

измените сообщение фиксации и нажмите кнопку OK. В моем примере, у меня есть добавлен "За свое! SKADOOSH!"

Edit the commit message

Шаг 5

когда вы вернетесь в интерактивное окно rebase, нажмите на OK чтобы закончить перебазироваться:

Click OK to finish.

Шаг 6

На этом этапе вам нужно будет принудительно нажать ваши новые изменения, так как вы перебазировали совершает то, что вы уже нажали. Однако, текущая версия 1.5.2.0 SourceTree для Windows не позволяет вам принудительно проталкивать графический интерфейс, поэтому вы нужно использовать Git из командной строки в любом случае для того, чтобы сделать это.

клик Terminal из графического интерфейса, чтобы открыть терминал.

Click Terminal

Шаг 7

из терминала force-push с помощью следующей команды,

git push origin <branch> -f

здесь <branch> - это имя ветви, которую вы хотите нажать, и -f означает в силу толчка. Сила толчка перезапишется ваши коммиты на вашем удаленный РЕПО, но это нормально в вашем случае, так как вы сказали, что вы не делитесь ваше РЕПО с другими людьми.

вот именно! Все кончено!

По Версии 1.9.6.1. За непокрытую фиксацию.

  1. нажмите на ранее совершенное описание
  2. щелкните значок фиксации
  3. введите новое сообщение и выбрать "поправки в последний коммит " из раскрывающегося списка параметры фиксации.
  4. зафиксируйте свое сообщение.

обновление

Примечание: этот ответ был первоначально написан в отношении более старых версий SourceTree для Windows, и теперь устарел.

смотрите мой новый ответ для текущей версии SourceTree для Windows,1.5.2.0. Я оставляю этот ответ в исторических целях.

Оригинальный Ответ

поскольку я нахожусь в Windows, у меня нет инструмента командной строки и я не знаю, как его использовать :( Это единственный способ разобраться в этом? Графический интерфейс не охватывает все функции git? - Оригинальный Плакат

Что Касается Git GUIs,нет, они не охватывают все функции Git. они даже близко не подходят. я предлагаю вам проверить один из ответов в How do I edit an incorrect commit message in Git?, Git достаточно гибок, что есть несколько решений...от командная строка.

SourceTree может фактически поставляться с оболочкой msysgit bash уже, или он может использовать стандартную командную оболочку Windows. В любом случае, вы открываете его форму SourceTree, нажав на кнопку терминала:

enter image description here

вы устанавливаете, какой терминал SourceTree использует (bash или Windows) здесь:

enter image description here

один из способов решить проблему в SourceTree

это, как говорится, вот один из способов вы можете сделать его в программа. Раз уж вы упомянули в комментариях что вы не возражаете "вернуться обратно к неисправной фиксации" (под которой я предполагаю, что вы на самом деле имеете в виду сброс, который является другой операцией в Git), то вот шаги:

  1. сделайте жесткий сброс в SourceTree для плохой фиксации, щелкнув правой кнопкой мыши на нем и выбрав Reset current branch to this commit, и выбор опции жесткого сброса из выпадающего списка. enter image description here
  2. Нажмите кнопку фиксации , тогда
  3. нажмите на флажок внизу, который говорит "изменить последнюю фиксацию". enter image description here
  4. внесите необходимые изменения в сообщение и снова нажмите кнопку фиксация. Вуаля!

о комментарий:

если это невозможно, потому что он уже нажат на Bitbucket, я бы не прочь создать новый репозиторий и начать все сначала.

означает ли это, что вы единственный человек, работающий над РЕПО? Это важно, потому что нетривиально изменить историю РЕПО (например, путем изменения фиксации), не вызывая проблем для ваших сотрудников. Однако, предполагая, что вы единственный человек, работающий над РЕПО, то следующее, что вы хотели бы сделать, это заставить нажать вашу измененную историю на пульт.

имейте в виду, однако, что, поскольку вы сделали жесткий сброс к неисправному фиксации, то принудительное нажатие заставляет вас потерять всю работу, которая приходит после него ранее. Если это нормально, тогда вам может потребоваться использовать следующую команду в командной строке для выполнения принудительного нажатия, потому что я не смог найти вариант сделать это в SourceTree:

git push remote-repo head -f

Это также предполагает, что BitBucket позволит вам принудительно нажать на репо.

вы действительно должны узнать, как использовать Git из командной строки в любом случае, это сделает вас более опытным в Git. #ProTip, используйте msysgit и включите режим быстрого редактирования в свойствах терминала, чтобы вы могли удвоить выделите строку текста, щелкните правой кнопкой мыши для копирования и снова щелкните правой кнопкой мыши для вставки. Это довольно быстро.