2

コマンドラインでgitを使用すると、コミットのログメッセージを入力する前に、コミット前のフックの結果が表示されます。pre-commitフックによってコミットが失敗した場合は、警告が表示され、何も書き込まれません。

しかし、magitを使用すると、ログコメントを入力するように求められフックが評価されます。失敗した場合は、理由がわかりません。あなたはただ読んだ:

git exited abnormally with code 1. magitがgitコマンドを実行するのはログメッセージの編集が終了したときなので、これは正常であると理解しています。

では、ログを要求する前に、どのようにしてmagitにフックを評価させるのでしょうか。magitにフックの結果を表示させるにはどうすればよいですか?

そして、関連する質問は、リポジトリ内のすべてのファイルではなく、隠されたファイルに対してのみフックを実行するために、pre-commitフックにどのように引数を与えるかということです。

私は主にpre-commitフックを使用して、残りの「ipdb」やいくつかの個人的なトレースなどのデバッグを忘れていないかどうかを確認します。

ありがとう !

4

2 に答える 2

2

magitによって呼び出されたときにgitが失敗した後、次を使用して理由を確認できるはずです。$

pre-commitフックを評価するために、magitには今のところ何もありません。あなたはこれのために何かを入れようとすることができますmagit-log-edit-mode-hook

(add-hook 'magit-log-edit-mode-hook
          '(lambda ()
                (shell-command "shell command to run git's hook")))

もちろん、ここにはシェルコマンドがありません...

事前コミットの関連する質問については、コミットされるファイルを知るためにgitを使用する必要があります。何かのようなもの

git diff --name-only --cached
于 2012-07-19T13:55:56.480 に答える
2

ログメッセージバッファを開く前にフックを実行するためのコードを記述しました。

https://github.com/vanicat/magit/commit/87ec17c46b156c8508a47aa6c9ba982ef8a61b4c

あなたはそれをテストすることができます、それはフックを無視する可能性を逃します、そして今のところpre-commitより他のフックを実行しないでください。

于 2012-07-24T10:32:08.017 に答える