0

ssh を使用してリモートの git リポジトリにアクセスします。このような単純な受信後スクリプトをフック ディレクトリに追加します。

#/bin/sh
REPO="$1"
REV="$2"
echo $REPO $REV >> /var/log/gitlog

ローカル PC のコードを変更して何度もプッシュしましたが、何も表示されませんでした/var/log/gitlog。post-receiveの許可を確認しました。そのファイル マスクは 777 に設定されています。すべてのユーザーがコンソールでスクリプトを実行できます。

4

1 に答える 1

1

これは、そのフック ( post-receive) が引数を取らないためである可能性があります。

gitHookを参照してください:

このフックは、リモート リポジトリで git-receive-pack によって呼び出されます。これは、ローカル リポジトリで git プッシュが行われたときに発生します。すべての参照が更新された後、リモート リポジトリで 1 回実行されます。

このフックは、受信操作のために 1 回実行されます。引数はありませんが、pre-receiveフックが標準入力に対して行うのと同じ情報を取得します。

この回答は次のとおりです。

コマンドを使用する必要がありますread

#!/bin/sh
read oldrev newrev refname
...
于 2012-12-10T12:13:40.327 に答える