Git совершить-путаницу
Я использую Git Bash и пытаюсь выяснить, что происходит, когда я набираю 'git commit -a'.
Похоже, что VIM открывается, чтобы редактировать сообщение о фиксации, но как сохранить и фактически завершить это коммитирование? Я набираю редактор и нажимаю Enter, но он просто создает другую строку.
FYI: Я использую VM Fusion на своем mac, поэтому некоторые из моих ключей могут быть немного разными
Ответы
Ответ 1
Просто оставьте VIM (командный режим → :wq
).
Флаг -a
работает как:
git add -u
git commit ...
Флаг -m
указывает сообщение фиксации. Это сообщение является обязательным, поэтому, если вы его не передадите (git commit -m "My message"
), текстовый редактор по умолчанию будет открыт (вы можете изменить его в конфигурации git), и вам придется написать сообщение о фиксации, затем сохранить и выйти редактора.
Ответ 2
это вопрос о VIM, а не git сам (если я не ошибаюсь)
VIM использует несколько режимов, для выхода из режима вставки нажмите ESC или ^ C. для сохранения и выхода из файла используйте ZZ
, :x
или :wq
просто для того, чтобы быть полным: git commit -a
сначала добавит все содержимое отслеживаемых и измененных файлов в индекс, а затем создаст фиксацию (после указания сообщения фиксации внутри vim или вашего редактора)
Ответ 3
Чтобы сохранить фиксацию, вы сохраняете и выходите из файла, как обычно, в vim.
:wq
Если вы передумали и хотите прервать, вы выходите без сохранения.
:q!
Вам не нужно использовать VIM, но вы можете установить редактор, например, следующее изменит редактор git uses to textmate.
git config --global core.editor textmate
Ответ 4
Как говорили другие, Vim открывается, поэтому вы добавляете сообщение с информацией об изменениях, которые вы совершаете. Кажется, редактор по умолчанию в вашей системе - Vim. Git настроен таким образом, что он будет включать в себя любое сообщение, которое вы вводите и сохраняете в Vim, после того, как вы закроете Vim с помощью: wq,: x или какой-либо другой команды.
В дополнение к методу, предложенному Эндрю Майерсом, об изменении редактора, вызываемого Git, вы можете включить простое сообщение в командной строке с чем-то вроде этого:
git commit -am 'This is my message for the commit. . . '
Если вы сделаете так, Git не беспокоит вас, открыв текстовый редактор вообще.