gpt4 book ai didi

GIT 接收后 Hook 不检查子模块

转载 作者:太空狗 更新时间:2023-10-29 13:54:06 25 4
gpt4 key购买 nike

我一直在开发一个 Kohana 3 项目,该项目是我之前使用下载的 zip 文件安装的。我的远程服务器“project.git”上有一个 git 存储库,它检查对我测试应用程序的工作目录“public_html”的最新提交

我的接收后 Hook 文件

GIT_WORK_TREE=/var/www/public_html;
git checkout -f;

它工作了几个月,直到我决定删除一些 kohana 文件夹并改用 git submodule,这样我就可以通过 git 进行更新。

现在的问题是子模块不在工作目录中。我试着去那里添加子模块,但“public_html”目录不是存储库。在“project.git”目录中,git 命令抛出一个错误,我必须在工作目录中执行它们。

如何修改我的 Hook 以在提交时 check out 子模块?

更新

根据@manojlds 的建议:我将它添加到 Hook 中,现在它看起来像这样:

GIT_WORK_TREE=/var/www/public_html;
git submodule init;
git submodule update;
git checkout -f;

但是我收到这条消息,

remote: You need to run this command from the Top level of the working tree

并且子模块没有变化

public_html

最佳答案

您必须添加以下内容(适本地使用 GIT_WORK_TREE 环境变量):

git submodule init
git submodule update

这样就可以获取到远程服务器上的子模块的内容,然后复制到public_html

下面是完整的接收后 Hook (经过修改以支持子模块的正常运行):

#!/bin/sh
unset GIT_DIR
git clone /path/to/repo /tmp/public_html
cd /tmp/public_html
git submodule init
git submodule update
cp -R /tmp/public_html /var/www/
rm -rf /tmp/public_html
rm -rf /var/www/public_html/.git

关于GIT 接收后 Hook 不检查子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6282859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com