Git部署带有子模块的钩子ec2

Git部署带有子模块的钩子ec2,git,node.js,amazon-ec2,git-submodules,supervisord,Git,Node.js,Amazon Ec2,Git Submodules,Supervisord,我在运行节点应用程序的aws上创建了一个实例。我安装了supervisord以保持节点应用程序正常运行。部署通过带有deploment钩子的git进行\ 结构如下: --- root | |--repo |-- hooks | |-- branches | |-- etc. | |--app post receive挂钩如下所示 #!/bin/sh GIT_WORK_TREE

我在运行节点应用程序的aws上创建了一个实例。我安装了supervisord以保持节点应用程序正常运行。部署通过带有deploment钩子的git进行\

结构如下:

    --- root
      |
      |--repo |-- hooks
      |       |-- branches
      |       |-- etc.
      |
      |--app
post receive挂钩如下所示

    #!/bin/sh
    GIT_WORK_TREE=/home/ubuntu/app
    GIT_DIR=/home/ubuntu/repo
    export GIT_WORK_TREE
    export GIT_DIR

    git checkout -f

    echo 'Update sub modules.'
    git submodule init && git submodule sync && git submodule update

    echo 'Install dependencies.'
    cd $GIT_WORK_TREE && sudo rm -rf node_modules && sudo npm install

    echo 'Restart app'
    sudo supervisorctl restart node
每件事都很好,但当我开始在我的回购协议中使用子模块时,我无法提取该模块并得到此消息。我得到了这个信息:

您需要从工作树的顶层运行此命令

我的安装基于

我的配置设置

    core.repositoryformatversion=0
    core.filemode=true
    core.bare=false
    core.worktree=/home/ubuntu/app
    receive.denycurrentbranch=ignore
如何解决此问题

提前谢谢