目前,我有一个post-receive
挂钩,其中包含:
git --work-tree=/served/data/location --git-dir=/this/bare/git/repo checkout -f
这很有效,直到我想要包含一个它忽略的子模块。
经过一番阅读后,我想我可以简单地添加:
git --work-tree=/served/data/location --git-dir=/this/bare/git/repo submodule update --init --recursive
唉:
没有工作树的情况下不能使用git-submodule
奇怪,因为我已经明确地提供了与先前结账相同的--work-tree
,这很好。
我在服务器上使用git version 2.7.4
,并使用git version 2.11.0
推送。
据我所知,这是the same issue as here,除了谈到称为“OpenShift”的事情。我从来没有听说过,也没有使用过,所以答案并没有真正帮助。
答案 0 :(得分:3)
由于某种原因,该命令需要从工作树内部运行,而不是裸git目录,即使提供了两个参数:
/裸回购/钩/后接收:
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