Как мне отредактировать неверное сообщение фиксации с помощью TortoiseGit?

107

Как я могу отредактировать сообщение фиксации с помощью tortoiseGIT? Вопрос очень похож на этот, но я хочу сделать это с помощью TortoiseGit, а не с консоли, возможно ли это?

вишня
источник

Ответы:

161

Если коммит является главой текущей ветки, это легко.

  1. Контекстное меню -> Git Commit
  2. Установите флажок "Изменить последнюю фиксацию"
  3. Исправьте сообщение о фиксации
  4. хорошо

Если коммит является главой другой ветки, сначала переключитесь на эту ветку.

  1. Контекстное меню -> TortoiseGit -> Switch / Checkout
  2. Выберите название отделения
  3. хорошо
  4. Выполните шаги 1–4 выше, чтобы изменить сообщение фиксации.

Если фиксация находится посередине без какого-либо слияния между головами, вам нужно сбросить, изменить и выбрать вишню

  1. Контекстное меню -> TortoiseGit -> Журнал
  2. Выберите фиксацию -> Контекстное меню -> Сброс
  3. Hard Reset ( это приведет к отмене всей работы, содержащейся в коммитах над выбранной фиксацией, а также любых незафиксированных изменений в рабочем каталоге )
  4. хорошо
  5. Выполните шаги 1–4 выше, чтобы изменить сообщение фиксации.
  6. Выберите от заголовка до одного коммита над ним -> Контекстное меню -> Выбор вишни
  7. Продолжать
Linquize
источник
12
Мне очень не хватает «Редактировать сообщение журнала» TortoiseSVN. Есть ли шанс, что они добавят такую ​​функцию?
Бенуа Бланшон
3
Я заблудился на шаге 6, что вы имеете в виду, говоря «Выбрать от заголовка до одной фиксации над ним», это опция в контекстном меню?
Flethuseo,
1
потеряна и на шаге 6. нигде нет опции выбора вишни, и я не вижу приведенную выше фиксацию в любом случае (просто говорит об изменениях рабочего
каталога
13
Проголосуйте против, потому что я думаю, что предложения в случае, когда фиксация находится посередине, заставили меня отказаться от моих изменений кода до этой фиксации, что составляет несколько недель работы.
Samuel
8
ВНИМАНИЕ: Используйте «Создать ветку в этой версии», чтобы установить временное имя ветки перед сбросом на фиксацию, которую вы хотите изменить. В противном случае вы рискуете потерять все коммиты выше этой точки. (Если это уже случилось с вами, git reflogпоможет вам их восстановить).
Стив Питчерс,
19

В случае, когда фиксация находится посередине, я настоятельно рекомендую не следовать инструкциям, предоставленным linquize, см. Комментарии ниже его ответа, чтобы узнать причину.

  1. Вы можете использовать командную строку git с TortoiseGit, и это не вызовет никаких проблем: могу ли я использовать инструменты командной строки Git и TortoiseGit одновременно? .

  2. Это видео на YouTube очень хорошо объясняет: http://youtu.be/4YjKY0u9Z6I . Обычно используйте git rebase -i, а затем просто «перефразируйте» сообщение фиксации.

Обновление: я считаю, что вы можете получить потерянные коммиты с помощью жесткого сброса, предложенного linquize, см. Ответ Уэйна здесь: Как я могу изменить порядок / объединить коммиты с помощью Git rebase? .

Самуэль
источник
7
Согласовано. У меня уходит невероятно много времени на то, чтобы научиться использовать git, SVN был таким простым. Концепция git проста, а вот его использование - нет.
Сэмюэл
TortoiseGit также предлагает интерактивную перебазировку, вам не нужно использовать для этого командную строку.
Питер
13

Я бы сказал, что лучший способ исправить любое сообщение о фиксации - использовать эту force rebaseопцию в tortoisegit.

См. Этот ответ о том, как изменить порядок коммитов (перебазировать) с помощью TortoiseGit . Тот же метод можно использовать для редактирования сообщений о фиксации.

  • Когда вы находитесь в диалоговом окне перебазирования, щелкните правой кнопкой мыши фиксацию, которую вы хотите отредактировать, и выберите Editпараметр. Вы можете редактировать несколько коммитов.
  • Щелкните Start Rebaseкнопку.
  • Rebase будет приостанавливаться на коммитах, которые вы отметили для Edit
  • Щелкните Commit Messageвкладку внизу и отредактируйте сообщение
  • Нажмите Amendкнопку, чтобы продолжить
Geoji
источник