Як скасувати відновлення git із внутрішнього 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

Відповіді:


258

Якщо ви виходите з редактора з кодом помилки, оновлення буде перервано.

Щоб вийти з кодом помилки на vim, зробіть

:cq

Дивіться тут і vimdoc тут .


6
Менше набравши, такий же результат
Зак Постен

44

Просто видаліть з файла всі рядки, які не є коментарями. Потім збережіть його у встановленому за замовчуванням шляху та вийдіть із редактора.

Як результат, git просто нічого не зробить у цій ребазі.

Для видалення всіх рядків у vim ви можете використовувати

:%d|x

Потім збережіть і закрийте.

видалити всі рядки файлу у Vim

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

VIM - кілька команд в одному рядку


це не стосується об'єднань. спробуйте зробити інтерактивну базу даних, щоб включити щонайменше одну комісію злиття та порівняти результат з початковим станом.
Младен Б.

9

Якщо ви використовуєте Notepad ++ у Windows, наприклад:

CtrlAщоб вибрати все, потім Delабо Backspaceвидалити та CtrlSзберегти. Git скасує базу даних, якщо файл порожній.

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


це загальний спосіб вирішити цю проблему, незалежно від того, використовується вим або будь-який інший редактор. дуже дякую! :)
Младен Б.

3

Видаліть увесь текст на екрані текстового редактора, а потім збережіть файл із заданим за замовчуванням шляхом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.