8

gitフックでエコーを有効にする方法はありますか

/var/git/repositories/project.git/hooks/post-update

#!/bin/bash
unset GIT_DIR;
echo '========post-update hook========='

cd /var/project;
git reset --hard;
git checkout testing;
git pull;
chmod -R 774 ./lib

update-apps

別のマシンで必要なgitプッシュ出力:

#git push
...
Writing objects: 100% (10/10), 5.98 KiB, done.
Total 10 (delta 3), reused 8 (delta 1)
========post-update hook=========
cd /var/project
git reset --hard
git checkout testing
git pull
chmod -R 774 ./lib
update-apps

これは単なる例であり、実際のコマンドチェーンはより複雑になる可能性があります

どこかで失敗します

どういうわけかstdoutをstderrにリダイレクトする必要がありますか?

アップデート

現在、私は通常のgit push出力を持っていますが、その後========post-update hook========= ...そして何もありません

おー!gitバージョンは1.5.6.5です

4

2 に答える 2

4

stdoutまたはstderrのすべての出力を転送する必要があります。、、、およびフックのすべてpre-receiveで機能することが期待されます。エコーコマンドは、bourneシェルで有効になります。updatepost-receivepost-updateset -x

于 2011-09-01T06:45:06.067 に答える
2

githooksマニュアルから:

標準出力と標準エラー出力の両方がもう一方の端のgitsend-packに転送されるため、ユーザーへのメッセージを簡単にエコーできます。

しかし、一部の以前のバージョンのGitと以前のバージョンのSmart HTTPには既知の問題があり、出力が送信されませんでした。gitバージョンを更新して試してください。

于 2011-09-01T06:51:35.887 に答える