目前,我有一个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”的东西,因此答案并没有真正的帮助。
由于某种原因,该命令需要从工作树内部运行,而不是裸露的 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)