如何捕获 git 提交消息并运行操作

发布于 2024-10-15 09:01:59 字数 504 浏览 5 评论 0原文

我是 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小梨窩很甜 2024-10-22 09:01:59

我想我已经找到了自己问题的答案;可以使用 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

我希望这可以帮助任何正在寻找答案的人。

I think I figured out the answer to my own question; the variable can be obtained using the git-log command:

git log -1 HEAD --pretty=format:%s

so, my script would be:

#!/bin/bash

MESSAGE=$(git log -1 HEAD --pretty=format:%s)

if [[ "$MESSAGE" == *\[email\]* ]]; then
        echo "do action here"
else
        echo "do nothing"
fi

I hope this might help anyone else who is searching for the answer.

喜爱纠缠 2024-10-22 09:01:59

你可能需要一个 git hook

You probably want a git hook for that

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文