如何修改 git post-update hook 以仅在一个(主)分支上激活?

2024-01-25

我在我的网络主机上设置了一个裸存储库,并从中克隆了一个存储库,只要将更改推送到裸存储库,该存储库就会更新。 Web 主机上的克隆存储库本质上是“生产,”它位于 public_html 目录中。我非常严格地遵循了该网站上的说明:

http://www.ibm.com/developerworks/web/library/wa-git/ http://www.ibm.com/developerworks/web/library/wa-git/

它指示我在裸仓库中创建一个“更新后”挂钩:

#!/bin/bash 
WEB_DIR="<web_dir>"
export GIT_DIR="$WEB_DIR/.git"
pushd $WEB_DIR > /dev/null
git pull
popd > /dev/null

如果我只在主分支上工作,这是一个很棒的 VCS 解决方案。

当我在位置 A 时,我想克隆裸存储库,开始处理分支“newstuff”,提交更改,然后将其推送到裸存储库,这样如果我转到位置 B,我可以克隆裸存储库回购并有权访问“新闻”。但我不想“生产”通过更新后脚本进行更新。

有没有办法可以修改我的更新后脚本,使其仅在主分支上进行更新时才执行其操作?


更新的引用作为参数传递给钩子。这意味着您可以使用以下命令检查 mastercase:

case " $* " in
*' refs/heads/master '*)
        # Do stuff
        ;;
esac

顺便一提,git pull服务器上的 只会获取其他分支,但如果 master 未更新,则不会修改您的工作目录,因此这并不是真正必要的(除非您可能担心性能)。

另请参阅有关钩子的官方文档:http://schacon.github.com/git/githooks.html#post-update http://schacon.github.com/git/githooks.html#post-update

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修改 git post-update hook 以仅在一个(主)分支上激活? 的相关文章

随机推荐