来自post-receive钩子的Git子模块更新

 哲玲旭辉9 发布于 2023-01-29 16:30

我正在尝试自动更新位于var/www/php/vendor/projectX每个提交到var/www超级项目的子模块.我在.git/hooks/post-receive文件中添加了这些行:

#!/bin/sh
echo "Updating submodules recursively"
pwd
git submodule update --init --recursive

但是当我承诺超级项目时,我得到了这个:

Counting objects: 8, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 346 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)

remote: Updating submodules recursively
remote: /var/www/.git
remote: No submodule mapping found in .gitmodules for path 'php/vendor/projectX'
To www-data@11.22.33.44:.
3dc2404..bc46dd6  dev -> dev

然而,.gitmodules文件中存在相应的部分,.git/modules中的文件也是如此.git submodule update --init --recursive手动运行工作正常.只有当它从钩子运行时才会起作用.谢谢

1 个回答
  • 尝试并:

    cd到该repo的根文件夹

    在执行git命令时,为该文件夹指定工作树和git目录.

    这将在你的post-receive钩子脚本中给出:

    cd /var/www/
    git --git-dir=/var/www/.git --work-tree=/var/www submodule update --init --recursive
    

    2023-01-29 16:32 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有