gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 14:30:45 27 4
gpt4 key购买 nike

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

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

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

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

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

当我在位置 A 时,我想克隆裸仓库,开始在分支“newstuff”上工作,提交更改,然后将其推送到裸仓库,这样如果我去位置 B,我可以克隆裸仓库并访问“newstuff”。但我不希望通过更新后脚本更新“生产”

有没有一种方法可以修改我的更新后脚本,使其仅在 master 分支上进行更新时执行它的操作?

最佳答案

被更新的引用作为参数传递给钩子(Hook)。这意味着您可以使用 case 检查 master:

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

顺便说一下,服务器上的 git pull 只会获取其他分支,但如果 master 没有更新则不会修改你的工作目录,所以这不是真的必要(除非当您可能担心性能)。

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

关于git - 如何修改 git post-update hook 以仅在一个(master)分支上激活?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6597105/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com