我有一个带有附加工作树的 git 存储库,我正在将其推送到远程的裸存储库。 存储库包含一个子模块。
在远程端:我将 repo 检查到工作树 git checkout -f
并设置了 GIT-DIR
和 GIT-WORK-TREE
环境变量。
在工作树中,我现在看到所有预期的文件和子模块的空目录('MySubmodule')。
然后我做:
git submodule init
git submodule update
此错误消息如下:
working tree '../../workTree/' already exists
Clone of 'git@github.com:user/MySubmodule.git' into submodule path 'MySubmodule' failed
空的子模块目录现在也从工作树中“消失”了……
我不确定我哪里出了问题,基本上我只是想像使用“git submodule update”一样检查子模块文件。
最佳答案
看起来当您运行“git submodule update”时您无法设置 GIT_WORK_TREE...它会尝试将其用作子模块的工作树,而不是 super 项目。
我不得不更新我的服务器更新后脚本...
/usr/local/bin/git --git-dir="$PROJECT_DIR" --work-tree="$PROJECT_DEMO" checkout -f;
cd "$PROJECT_DEMO";
/usr/local/bin/git --git-dir="$PROJECT_DIR" submodule update --init --recursive;
注意我没有设置 env 变量,而且子模块命令没有设置“--work-tree”……看来它需要从 cwd 开始工作。
关于git - 推送到裸工作目录后,如何在工作树中初始化/更新 git 子模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7446681/