【问题标题】:Branch name within git post hookgit post 挂钩中的分支名称
【发布时间】:2015-04-30 05:40:09
【问题描述】:

所以我使用this 方法来访问 git 服务器端挂钩中的 repo 的名称。有没有办法访问分支名称?

目的是每当有人推送到这个裸仓库时,都会触发一个钩子,调用另一个脚本并将仓库的名称(已经这样做)以及刚刚推送的分支的分支名称传递给它。

【问题讨论】:

    标签: git


    【解决方案1】:

    如“how can git post-receive hook get name of repo it is running on?”中所述,post-receive 钩子可以接收来自多个分支的提交:

    #!/bin/bash
    while read oldrev newrev refname
    do
        branch=$(git rev-parse --symbolic --abbrev-ref $refname)
        if [ "master" == "$branch" ]; then
            # Call your script
        fi
    done
    

    您的脚本最终可能会被调用多次次。

    【讨论】:

    • $branch 变量是否获取分支的名称?我似乎无法回应它(没有 if 语句)。
    • @derpy 是的,确实如此。如果回显不起作用,请尝试将其重定向到文件以进行测试。
    • 这就是我正在尝试的。如果我从您发布的脚本中取出 if 和 fi 行并将它们替换为 echo $branch > /some/path ,我什么也得不到。
    • @derpy 你在推送提交吗? (意思是脚本被push触发了,还是你尝试直接手动执行脚本?)
    • 由推送触发。为了证明其他一切正常,我可以使用上述代码将 repo 的名称输出到文件,但在分支上仍然失败。
    猜你喜欢
    • 1970-01-01
    • 2011-11-11
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    • 2015-08-31
    • 2018-05-04
    相关资源
    最近更新 更多