非主分支如何触发post-receive hook

How to trigger post-receive hook with non-master branch

我有两个远程存储库由我的本地 git 存储库管理:

我有一个 post-每个遥控器的接收挂钩:

#!/bin/sh
git --work-tree=/var/www/REMOTENAME --git-dir=/var/repo/REMOTENAME.git checkout -f 

但是,当我推送非主分支时,工作树没有得到更新。例如,如果我有一个名为 'test' 的分支,我会 运行:

git push stage test

而且我看不到遥控器的工作树有任何变化。

如果我运行:

git checkout master
git merge test
git push stage master

我确实看到了远程工作树上的变化。

我的目标是能够使用允许我在多个分支上分离开发并将非主分支推送到阶段的工作流。

如有任何帮助,我们将不胜感激。

您必须在 post-receive 挂钩中指定要结帐的分支。 使用的默认分支是 master。这就是为什么推送非主分支时行为不同的原因。

分支可以在单独的 shell 命令中知道。 branch=$(git rev-parse --symbolic --abbrev-ref )。 (来源 Git branch in a hook

然后,在结帐命令末尾添加 $branch