2017-01-04 6 views
1

私はフックを持っており、GIT_EDITORという環境変数を読み込もうとしています。`commit-msg`フック内で` GIT_EDITOR`が `:`(コロン)に設定されているのはなぜですか?

私のシェルに$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」を値に設定します。外殻の 'ナノ'も助けにならない。値は 'commit-msg'フックの中ではまだ': 'です。 – tommarshall

+0

魅惑的です。これが意図された行動であると考えるのは難しいです。 :D –

+0

'commit-msg'ファイルを表示できますか? –

答えて

4

答えは(「事前コミット」の説明の下部付近)documentationである:

すべてgit commitフックがで呼び出され環境変数GIT_EDITOR=:は、コマンドがコミット・メッセージを変更するためのエディタを起動しない場合に使用します。

-mを省略すると、より意味のあるものに変わります。

+0

です。さらに注意すべき点として、 '-e'または' --edit'、 '-F'、' -m'のコマンドライン、 '-C'のコミットオブジェクトから取ったメッセージは通常、変更されていないコミットログメッセージとして使われます。このオプションを使うと、これらのソースから取ったメッセージをさらに編集することができます"](https://git-scm.com/docs/git-commit#git-commit--e) – jthill

関連する問題