私はgitが新しく、origin/masterへのプッシュ後にコミットメッセージをキャプチャし、(サーバ上で)ベースのbashスクリプトを実行できるようにしたい文字列に含まれるものgitコミットメッセージをキャプチャしてアクションを実行する方法
例えば、私のGitはコミットメッセージ場合は言う:[email] my commit message
コミットメッセージが[email]
はその後、指定されたアクションを実行する含まれている場合は、それ以外の場合は、それをしません。
ここで私はpost-receive
フックで使用するのではと思っていたサンプルbashスクリプトです:
#!/bin/bash
MESSAGE= #commit message variable?
if [[ "$MESSAGE" == *[email]* ]]; then
echo "do action here"
else
echo "do nothing"
fi
私が知る必要があるすべては、上記のbashで使用するために、コミットメッセージの変数名が何であるかでありますスクリプト?また、これが正しいかどうかは分かりません。
この '[email]'マークアップはあなたのコミットメッセージに永久に含まれますか? – Cascabel
他の可能な方法:環境変数を使用してフックに信号を送ります。そのため、コミットメッセージには何も決してありません。これを簡単にするためにエイリアスを使用します。または、メッセージに書きたい場合は、コミット前のフックでマークアップを検出して、コミットが記録される前にメッセージを修正することができます。 (コミットが成功し、すぐに電子メールが送信されると仮定するか、またはコミット後のフックのために何かを保存して...) – Cascabel
または、あなたは本当にこのポスト受信をしていますか、ポストコミットですか?もちろん、コミットメッセージを変更することはできません。しかし、これはあなたのソリューションがうまくいかないことを意味します。プッシュはただ1つのコミットをプッシュするだけでなく、任意の数の新しいリファレンスを更新することができます。実際には、[example](http://git.kernel.org/?p=git/git.git;a=blob;f=contrib/hooks/post-receive-email;hb=HEAD)を参照してください。 gitの貢献です。それは非常に扱いやすく、 '[email]'と言うコミットにのみ注意を払うように修正することができます。 – Cascabel