如何捕获 git 提交消息并运行操作
我是 git 新手,我希望能够在推送到 origin/master 后捕获提交消息,并根据字符串包含的内容运行 bash 脚本(在服务器上)。
例如,如果我的 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 脚本中使用?另外,我不确定这是否是正确的做法。
I'm new to git and I want to be able to capture the commit message after a push to the origin/master and run a bash script (on the server) based on what the string contains.
For example, if my git commit message says: [email] my commit message
If the commit message contains [email]
then do a specified action, otherwise, don't do it.
Here's a sample bash script I'm thinking of using in the post-receive
hook:
#!/bin/bash
MESSAGE= #commit message variable?
if [[ "$MESSAGE" == *[email]* ]]; then
echo "do action here"
else
echo "do nothing"
fi
Basically all I need to know is what the variable name for the commit message is, to use in the above bash script? Also, I'm not sure if this is the right hook to do this or not.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想我已经找到了自己问题的答案;可以使用 git-log 命令获取变量:
所以,我的脚本是:
我希望这可以帮助任何正在寻找答案的人。
I think I figured out the answer to my own question; the variable can be obtained using the
git-log
command:so, my script would be:
I hope this might help anyone else who is searching for the answer.
你可能需要一个 git hook
You probably want a git hook for that