Git - Как закрыть коммит редактор?

209

Я новичок в Git и учусь на PDF. Я только что выполнил команду, $ git commitи она открывает новый редактор. Но я пытаюсь закрыть этот новый редактор коммитов. Как это сделать? Я использую Git на Windows.

aniskhan001
источник
не полный ответ, но один из способов избежать редактора - использовать опцию «-m». Например, после $ git add <your_changes>, затем выполните $ git commit -m "мои изменения; я избегаю редактора!"
Кецалькоатль

Ответы:

242

Сохраните файл в редакторе. Если это Emacs: CTRLX CTRLSсохранить, CTRLX CTRLCчтобы выйти или если это vi::wq

escСначала нажмите, чтобы выйти из режима редактирования. (в windows / vi)

tpg2114
источник
3
Пользователь должен закрыть редактор в дополнение к сохранению файла, так что для Emacs это на самом деле Ctrl-X Ctrl-C.
user4815162342
1
Обновлено ... Я знал это, но, как и большинство команд emacs, они настолько укоренились во мне, что я забыл, что они ... Я просто делаю их.
tpg2114
Если вы используете emacsclient, вы можете закрыть его с помощьюC-x #
azzamsa
1
спасибо, на windows bash не ясно, что вы должны 1: выйти и 2: сохранить изменения
Хуан Монсальве
Можно ли отключить этот режим вставки на компьютере с Windows?
Rez.Net
201

Также были проблемы. В Linux я использовал Ctrl+ XYдля подтверждения), а затем вернулся к оболочке, готовой к вытягиванию / толканию.

В Windows GIT Bash Ctrl + Xничего не делал и обнаружил, что работает так же, как vi / vim. Нажмите iдля входа в режим вставки. Введите описание в самом верху, нажмите escдля выхода из режима вставки, затем введите :x!(теперь курсор находится внизу) и нажмите, enterчтобы сохранить и выйти.

Если ввести :q!вместо этого, выйдет из редактора без сохранения (и фиксация будет прервана)

Марк Компт
источник
18
это ответ для меня для окон
кладезь
1
esc: x! - Это не просто невозможно обнаружить, как если бы кто-то играл в прятки с функциональностью.
Тристан
45

После написания сообщения коммита просто нажмите кнопку Esc и затем напишите : wq или : wq! и затем Enter, чтобы закрыть файл Unix.

Чандан Гупта
источник
6
это решение, которое работает на Git Gui bash для окна
ocrampico
! Это напомнило мне времена университета, когда мы занимались редактированием Unix vi, после долгого написания :wqкоманд
Irf
:xэто ярлык :wqв Vim.
Рневиус
19

Еще лучше, настройте редактор так, чтобы вам было удобно (например, gedit):

git config --global core.editor "gedit"

Вы можете прочитать текущую конфигурацию следующим образом:

git config core.editor

Вы также можете добавить сообщение коммита из командной строки.

git commit -m "blablabla"

и редактор не будет открыт в первую очередь.

Мартин Г
источник
8

После git commitкоманды вы вошли в редактор, поэтому сначала нажмите, iзатем начните печатать. После совершения вашего сообщения нажмите Ctrl + cзатем:wq

Мухаммед Хашеми
источник
4

Альтернативы Nano (может сделать вашу жизнь проще):

В Windows используйте блокнот. В командной строке введите:

git config core.editor notepad

В Ubuntu / Linux используйте текстовый редактор (gedit). В окне терминала введите:

git config core.editor gedit

ggootz
источник
1

В качестве альтернативы 'save & quit', вы можете использовать функцию git-commit git-commit-commit, по умолчанию привязанную к C-c C-c. Это сохранит файл и закроет его. После этого вам все равно придется закрыть emacs C-x C-c, как упоминалось ранее. В настоящее время я пытаюсь выяснить, как заставить emacs выйти автоматически.

Мартин
источник
1

У меня была эта проблема, я получил приглашение типа «>» и не смог зафиксировать. Я заменяю «в комментарии» и это работает.

Я надеюсь, что это поможет кому-то!

Мариано Кали
источник
Ага! Я тоже застрял с этой подсказкой ">". Прочитав ваш комментарий, я понял, что поскольку в своем комментарии я использовал апостроф в сокращении, терминал ждал, чтобы я закрыл цитату! Наконец-то я свободен!
Кевин Шарнхорст
0

Не уверен, что комбинация клавиш, которая приводит вас к приглашению>, но это не приглашение bash, которое я знаю. Я обычно получаю это случайно. Ctrl + C (или D) возвращает меня к приглашению $.

dubfactor
источник
0

Обратите внимание, что если вы используете Sublime в качестве редактора коммитов, вам нужны -n -wфлаги , иначе git будет думать, что ваше сообщение коммита пустое и прерывается.

Сиддхартха
источник
0

В Mac 1. Нажмите Shift + Z Shift + Z (заглавная Z дважды).

A_Mo
источник