包含子模块的“推送部署”接收后挂钩?

OJF*_*ord 5 git

目前,我有一个post-receive钩子,其中包含:

git --work-tree=/served/data/location --git-dir=/this/bare/git/repo checkout -f
Run Code Online (Sandbox Code Playgroud)

这非常有效,直到我想包含一个子模块,它只是忽略了它。

经过一番阅读后,我想我可以简单地添加:

git --work-tree=/served/data/location --git-dir=/this/bare/git/repo submodule update --init --recursive
Run Code Online (Sandbox Code Playgroud)

唉:

没有工作树就无法使用 git-submodule

奇怪的是,因为我明确提供了--work-tree与之前结账相同的信息,效果很好。

git version 2.7.4在服务器上使用,并使用git version 2.11.0.


据我所知,这与此处的问题相同,只是谈论了我从未听说过且没有使用的名为“OpenShift”的东西,因此答案并没有真正的帮助。

OJF*_*ord 4

由于某种原因,该命令需要从工作树内部运行,而不是裸露的 git 目录,即使提供了两个参数:

/bare-repo/hooks/post-receive

git --work-tree=/served-data --git-dir=/bare-repo checkout -f
cd /served-data
git --work-tree=/served-data --git-dir=/bare-repo submodule update --init --recursive
Run Code Online (Sandbox Code Playgroud)