我是git的新手,我希望能够在推送到origin / master之后捕获提交消息,并根据字符串包含的内容运行bash脚本(在服务器上)。
例如,如果我的git commit消息显示:[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脚本中使用?此外,我不确定这是否是正确的钩子。
答案 0 :(得分:26)
我想我找到了自己问题的答案;可以使用git-log
命令获取变量:
git log -1 HEAD --pretty=format:%s
所以,我的脚本将是:
#!/bin/bash
MESSAGE=$(git log -1 HEAD --pretty=format:%s)
if [[ "$MESSAGE" == *\[email\]* ]]; then
echo "do action here"
else
echo "do nothing"
fi
我希望这可以帮助其他正在寻找答案的人。
答案 1 :(得分:1)
你可能想要一个git hook