2017-01-04 2 views
1

У меня есть крючок commit-msg, который пытается прочитать переменную окружения GIT_EDITOR.Почему `GIT_EDITOR` установлен в`: `(двоеточие) в моем крюке` commit-msg`?

В моей оболочке $GIT_EDITOR не установлен.

$ echo $GIT_EDITOR 

$ test -z "$GIT_EDITOR" && echo "GIT_EDITOR empty" 
GIT_EDITOR empty 

Однако в commit-msg крючок оказывается быть установлен в :. Почему это? Есть ли прочь, чтобы это не произошло?

Я тестировал это на нескольких машинах, и везде вижу одно и то же поведение.

уменьшенного тест:

$ mkdir /tmp/git-hook-editor-test && cd /tmp/git-hook-editor-test/ 
$ git init 
$ echo 'echo "GIT_EDITOR =" $GIT_EDITOR && exit 1' > .git/hooks/commit-msg 
$ touch foo.txt 
$ git add foo.txt 
$ git commit -m 'foo' foo.txt 
GIT_EDITOR = : 
+0

Установка значения GIT_EDITOR на значение, например. 'nano' в внешней оболочке тоже не помогает. Значение по-прежнему ':' внутри 'commit-msg' hook. – tommarshall

+0

Увлекательный. Трудно поверить, что это предполагаемое поведение. : D –

+0

Можете ли вы показать свой файл 'commit-msg'? –

ответ

4

Ответ в documentation (в нижней части описания для «предварительной фиксации»):

Все git commit крючки вызываются с переменная среды GIT_EDITOR=:, если команда не вызывает редактор для изменения сообщения фиксации.

Если вы оставите -m, вы должны увидеть его изменение на нечто более значимое.

+0

В качестве дальнейшего примечания, [с '-e' или' -edit', Сообщение, взятое из файла с '-F', командной строкой с' -m' и из объекта commit с '-C', обычно используется как сообщение журнала фиксации без изменений. Этот параметр позволяет вам дополнительно отредактировать сообщение, взятое из этих источников . "] (https://git-scm.com/docs/git-commit#git-commit--e) – jthill

Смежные вопросы