Как прервать git rebase изнутри vim во время интерактивного редактирования


138

Когда я делаю интерактивный ребаз, например

git rebase -i HEAD~3

открывается интерактивный редактор rebase (в моем случае vim), чтобы я мог редактировать коммиты, чтобы перебазировать

pick c843ea2 Set Vim column limit to 80 (OS X)
pick fc32eac Add Bash alias for `pbcopy` (OS X)
....

Если я сейчас решу, что хочу прервать ребазинг и выйти из vim, использую :qребаз в любом случае. Я использую GIT-версию 1.9.0.msysgit.0на Windows.

Конечно, я могу просто удалить все pickстроки, но это может быть много, если я перебазирую более длинную историю. Есть ли другой способ?

Как выйти из интерактивного редактора rebase (vim) и отменить его?


Вы бы предпочли использовать другой редактор, например Блокнот? Если так, у меня есть решение для этого
Стивен Пенни

5
git rebase --abort
vanduc1102

@ vanduc1102 У меня работает, хотелось бы, чтобы это был ответ!
C Bauer

Ответы:



44

Просто удалите все строки, которые не являются комментариями из файла. Затем сохраните его в заданном по умолчанию пути и выйдите из редактора.

В результате git ничего не сделает в этом ребазе.

Для удаления всех строк в vim вы можете использовать

:%d|x

Затем сохраните и выйдите.

удалить все строки файла в Vim

Как выйти из редактора Vim?

VIM - несколько команд в одной строке


это не касается коммитов слияния. попробуйте выполнить интерактивную перебазировку, чтобы включить хотя бы одну фиксацию слияния и сравнить результат с исходным состоянием.
Младен Б.

9

Если вы используете Notepad ++ в Windows, например:

CtrlAвыбрать все, затем Delили Backspaceудалить и CtrlSсохранить. Git прервет ребаз, если файл пуст.

Вы также можете нажать CtrlCв командной строке, где запущен git, чтобы остановить текущую команду rebase. Затем бегите, git rebase --abortчтобы вернуть его.


это общий способ решения этой проблемы, независимо от того, используете ли вы vim или любой другой редактор. большое спасибо! :)
Младен Б.

3

Удалите весь текст на экране текстового редактора, затем сохраните файл с указанным по умолчанию путем.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.