git commit -a путаница - PullRequest
       1

git commit -a путаница

30 голосов
/ 12 ноября 2010

Я использую Git Bash и пытаюсь выяснить, что происходит, когда я набираю 'git commit -a'.

Похоже, VIM открывается, чтобы редактировать мое сообщение о коммите, но как мне сохранить и фактически выполнить этот коммит? Я печатаю в редакторе и нажимаю ввод, но он просто создает другую строку.

К вашему сведению: я использую VM Fusion на своем Mac, поэтому некоторые мои ключи могут немного отличаться

Ответы [ 4 ]

42 голосов
/ 12 ноября 2010

это вопрос о VIM, а не о самом git (если я не ошибаюсь)

VIM использует несколько режимов, чтобы выйти из режима вставки, нажмите ESC или ^ C.чтобы сохранить и выйти из файла, используйте ZZ, :x или :wq

, просто чтобы завершить: git commit -a сначала добавит все отслеживаемые и измененные файлы в индекс, а затем создаст коммит(после указания сообщения коммита внутри vim - или по вашему выбору)

26 голосов
/ 12 ноября 2010

Просто выйдите из VIM ( командный режим -> :wq).

-a флаг работает так:

git add -u
git commit ...

-m флаг определяет фиксациюсообщение.Это сообщение является обязательным, поэтому, если вы не передадите его (git commit -m "My message"), будет открыт текстовый редактор по умолчанию (вы можете изменить его в конфигурации git), и вам придется написать сообщение коммита, затем сохранить и выйти из редактора..

14 голосов
/ 12 ноября 2010

Чтобы сохранить ваш коммит, вы сохраняете и выходите из файла, как обычно, в vim.

:wq

Если вы передумали и хотите отменить выход, не сохраняя.

:q!

Вам не нужно использовать VIM, вы можете установить редактор, например, следующее изменит редактор, который использует git для textmate.

git config --global core.editor textmate
3 голосов
/ 12 ноября 2010

Как уже говорили другие, Vim открывается, поэтому вы можете добавить сообщение с информацией об изменениях, которые вы вносите.Кажется, по умолчанию в вашей системе используется редактор Vim.Git настроен так, что он будет включать в себя все сообщения, которые вы вводите и сохраняете в Vim, после того, как вы закроете Vim с помощью: wq,: x или какой-либо другой команды.

В дополнение к методу Эндрю Майерс предлагает изменитьРедактор, вызываемый Git, вы можете добавить в командную строку простое сообщение с примерно таким текстом:

git commit -am 'This is my message for the commit. . . '

Если вы сделаете это таким образом, Git не будет мешать вам, открывая текстовый редактор вообще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...