Gitステータスは、リポジトリ内の変更されたファイルに関する情報を提供します(追跡されていないファイルまたはステージングされたファイルにあります)これらのファイルのリストにアクセスできるようにしたいです-コミットが実行される前に、それらのファイルのコード品質チェックを実行します. フック
このファイルのリストにアクセスできるかどうか教えてください。
ちなみにGit初心者です。だから、私の仮定で大失敗を犯した場合は、私を甘やかしてください
Gitステータスは、リポジトリ内の変更されたファイルに関する情報を提供します(追跡されていないファイルまたはステージングされたファイルにあります)これらのファイルのリストにアクセスできるようにしたいです-コミットが実行される前に、それらのファイルのコード品質チェックを実行します. フック
このファイルのリストにアクセスできるかどうか教えてください。
ちなみにGit初心者です。だから、私の仮定で大失敗を犯した場合は、私を甘やかしてください
これは、すべてのgit インストールに付属しているもののようなpre-commit hooktemplates/hooks--pre-commit.sample
になります。
より複雑な例は、たとえば、Python コードの品質をチェックするためのプロジェクトgit-pylint-commit-hookです。フックは、.py で終わるファイル、または python を含む she bang (#!) を持つファイルをチェックします。
コミットメッセージを入力する前に、
pre-commit
フックが最初に実行されます。
コミットしようとしているスナップショットを検査したり、何かを忘れていないかどうかを確認したり、テストが実行されていることを確認したり、コード内で検査する必要があるものを調べたりするために使用されます。このフックをゼロ以外で終了すると、コミットは中止されますが、 git でバイパスできます
commit --no-verify
。コード スタイルのチェック (lint または同等のものを実行)、末尾の空白のチェック (デフォルトのフックはまさにそれを行います)、または新しいメソッドに関する適切なドキュメントのチェックなどを行うことができます。
「 Git のカスタマイズ - Git 適用ポリシーの例」で、ルビでさらに例を参照してください。
files_modified = `git diff-index --cached --name-only HEAD`.split("\n")
files_modified.each do |path|
# do your checks
end
end