Git - Как закрыть коммит редактор?
Я новичок в Git и учусь на PDF. Я только что выполнил команду $ git commit
и он открывает новый редактор. Но я пытаюсь закрыть этот новый редактор коммитов. Как это сделать? Я использую Git на Windows.
16 ответов
Сохраните файл в редакторе. Если это Emacs: CTRLX CTRLS для сохранения, тогда CTRLX CTRLC для выхода или если это vi ::wq
Нажмите esc
первым выйти из редактирования. (в windows/vi)
Также были проблемы. В Linux я использовал Ctrl+X (и Y для подтверждения), а затем вернулся к оболочке, готовой к вытягиванию / нажатию.
В Windows GIT Bash Ctrl+X ничего не делает и обнаруживает, что работает так же, как vi / vim. Нажмите i, чтобы войти в режим вставки. Введите описание в самом верху, нажмите esc, чтобы выйти из режима вставки, затем введите :x!
(теперь курсор находится внизу) и нажмите Enter, чтобы сохранить и выйти.
Если печатать :q!
вместо этого выйдет из редактора без сохранения (и фиксация будет прервана)
После написания сообщения о коммите просто нажмите клавишу Esc и затем напишите :wq или :wq! и затем Enter, чтобы закрыть файл Unix.
А еще лучше настройте редактор так, чтобы вам было удобно (например, gedit):
git config --global core.editor "gedit"
Вы можете прочитать текущую конфигурацию следующим образом:
git config core.editor
Вы также можете добавить сообщение коммита из командной строки.
git commit -m "blablabla"
и редактор не будет открыт в первую очередь.
После git commit
Команда, которую вы ввели в редактор, поэтому сначала нажмите i
затем начните печатать. После совершения вашего сообщения нажмите Ctrl + c
затем :wq
Вы просто нажимаете клавишу.
сначала нажмите ESC + ввод, а затем нажмите:x + ввод
Альтернативы Nano (может сделать вашу жизнь проще):
В Windows используйте блокнот. В командной строке введите:
git config core.editor notepad
В Ubuntu / Linux используйте текстовый редактор (gedit). В окне терминала введите:
git config core.editor gedit
У меня была эта проблема, которая мне не понравилась, и я не смог ее выполнить. Я изменяю "в комментарии для", и это работает.
Я надеюсь, что это поможет кому-то!
В качестве альтернативы 'save & quit' вы можете использовать функцию git-commit git-commit-commit
по умолчанию привязан к Cc Cc. Это сохранит файл и закроет его. После этого вам все равно придется закрыть emacs с помощью Cx Cc, как упоминалось ранее. В настоящее время я пытаюсь выяснить, как заставить emacs выйти автоматически.
Каким-то образом мой терминал на Mac открывает редактор Joe, когдаgit commit
. мне пришлось нажатьCtrl + K H
чтобы обратиться за помощью, это побудило меня нажатьCtrl + K + X
выйти.
Не уверен, что комбинация клавиш, которая приводит вас к приглашению>, но это не приглашение bash, которое я знаю. Я обычно получаю это случайно. Ctrl+C (или D) возвращает меня к приглашению $.
Что именно работает, зависит от того, в каком редакторе вы находитесь. Многие ответы здесь объясняют, как выйти илиvim
(Escс последующим:wq
при приглашении сохранить файл и выйти), с добавлением некоторых других редакторов; но никто из них на самом деле не обсуждает, как вы можете это узнать.
Git «из коробки» проверяет вашVISUAL
переменная среды. Если этот параметр не установлен, по умолчанию будетvi
на Unix-подобных платформах.
export VISUAL=nano
выбиратьnano
вместо. (Этот редактор мне не особо нравится и я не рекомендую, хотя он был разработан специально для того, чтобы его было легко понять и изучить новичкам.) Очевидно, если вы предпочитаетеemacsclient
илиsublime
илиcode
, поставьте это после знака равенства. Никаких пробелов по обе стороны от знака равенства! Поместите это в файл запуска вашей оболочки (.bash_profile
или.zprofile
или.profile
или т. д., в зависимости от того, какую оболочку вы используете), чтобы сделать этот параметр значением по умолчанию в новых экземплярах терминала.
Другой распространенный сценарий — если вы начали вводить многострочную строку в командной строке.
bash$ git commit -m "here is my commit message
> oops, I forgot the final quote
> how do I fix this?
> haaaaaaalp
В этот момент вы можете нажать ctrl-Cчтобы сдаться и начать все сначала. >
приглашение — это вторичное приглашение оболочки (его можно настроить, изменив значениеPS2
, но большинство людей этого не делают), который отображается, когда вы находитесь в середине строки в кавычках. Если вы хотите зафиксировать уже введенное сообщение, просто добавьте недостающую последнюю одинарную или двойную кавычку:
bash$ git commit -m 'small changes
> '
[main 0badd09]
736 files changed, 136756 insertions(+)
bash$ _
Еще раз повторю: Git и ваш редактор — это два разных компонента (как и ваша ОС, ваша оболочка, ваш терминал, ваши языки программирования и т. д.). Когда вы только начинаете, вероятно, вам будет сложно понять, какая часть каким поведением управляет. В итоге вы получаете чрезвычайно гибкую, настраиваемую и, следовательно, чрезвычайно эффективную личную среду.
(В Windows Git обычно поставляется в комплекте с Bash, потому что в то время, когда они начали во всем разбираться, не было нормальной встроенной оболочки для Windows. В наши дни все немного по-другому, в той степени, в которой можно использовать «нормальную» и Windows. в одном и том же предложении без отрицаний или сложных уточнений, но, вероятно, не имеет смысла возвращаться и начинать все сначала с другой базовой линией.)
Я столкнулся с подобной проблемой на всякий случай, если это поможет вам.
Когда вы нажмете команду
git commit --amend
. Он открывает редактор по умолчанию. Теперь встал вопрос, как это закрыть. Я только что решил это, так что вот, если это поможет:
нажмите Ctrl+X
Нажмите Y, чтобы выбрать Да
Нажмите Ctrl+ M+ A(Эта команда сохраняет редактируемое сообщение коммита и выводит вас из редактора)
Пытаться
git log
команда для проверки ваших изменений
просто ctrl+x работал у меня. используйте ctrl+s для сохранения перед