Gitの後にpost commitフックが実行されていません。端末から実行するだけでフックが機能することを確認しました。フックのコードは次のとおりです。
#!/bin/sh
#.git/hooks/post-commit
# An example hook script that is called after a successful
# commit is made.
#
# To enable this hook, rename this file to "post-commit".
Perl -pi -e 's/([a-f0-9]+)$/'$( git rev-parse HEAD )/ ../../config/commit.git
./.git/hooks/でpost-commitにファイルの名前を変更しましたが、パーミッションは-rwxr-x-r-x
したがって、なぜ機能しないのかわかりません。
次のように、Perl行の前後にいくつかのエコー行を入れてみてください。
echo "post-commit started"
Perl ...........
echo "post-commit finished"
このようにして、スクリプトが実際に実行されているかどうかを確認できます。
git commit
見るべき
post-commit started
post-commit finished
出力の終わりに向かって。
my post-commitフックが実行されていなかったときに自分の答えを見つけたので、ここに答えとして残しておきます。
chmod +x .git/hooks/post-commit
おそらく、あらゆる種類のフックに適用されます。実際、おそらくあらゆる種類のスクリプトに適用されます。
私のコミット後スクリプトは呼び出されていませんでした:
post-commit.sh
ではなく、post-commit
というスクリプト名を付けました。
フックスクリプトを有効にするには、適切な名前(拡張子なし)で実行可能な.gitディレクトリのhooksサブディレクトリにファイルを配置します。その時点から、それを呼び出す必要があります。ここでは、主要なフックファイル名のほとんどについて説明します。 git-scmを参照
フックにbashファイル拡張子が必要な理由がわからない。
また、フックスクリプトcannotがファイル拡張子を持っていることに気づきませんでした。たとえば、
バンドルされたフックスクリプトを使用する場合は、名前を変更する必要があります。ファイル名はすべて.sampleで終わります
これが誰かを助けることを願っています。