32
我正在执行一个程序来在每次将更新发送到远程存储库时警告CruiseControl。我为此使用了Git post-update钩子。在更新后的钩子中查找Git分支名称
如果我能找出哪个分支已经被提交,那么我就可以使用它来通知CruiseControl要建立哪个分支。有没有办法在更新后的钩子中访问分支名称?
我正在执行一个程序来在每次将更新发送到远程存储库时警告CruiseControl。我为此使用了Git post-update钩子。在更新后的钩子中查找Git分支名称
如果我能找出哪个分支已经被提交,那么我就可以使用它来通知CruiseControl要建立哪个分支。有没有办法在更新后的钩子中访问分支名称?
更新后挂钩的第一个参数是完整的分支引用 - 例如,我看到'refs/heads/master'用于推送到'origin master'。这样一个示例钩子脚本只是打印分支改性是:
:#!/bin/sh
branch=$(git rev-parse --symbolic --abbrev-ref $1)
echo Update pushed to branch $branch
exec git update-server-info
为了说明,当上述被放置到您的远程存储库钩/更新后的文件执行推送当打印以下
% git push origin master
Counting objects: 5, done
Writing objects: 100% (3/3), 247 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
remote: Update pushed to branch master
To /tmp/xx/a
e02d9cd..ab14a08 master -> master
我们的钩子脚本输出了开始'remote:'的新行。
谢谢Patthoyts。使用上面的代码,我得到“远程:钩子/后更新:第8行:分支:命令未找到”。锚 – user489998
我提供了一个扩展样本。你仍然需要#!/ bin/sh行。另外,当你在shell脚本中设置一个变量时,使用$来访问价值 – patthoyts
Wayhey!这是做到了。非常感谢patthoyts。 – user489998