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


209

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


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

Ответы:


242

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

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


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


1

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


1

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

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


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

0

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


0

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


0

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

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