·部署时尝试“ git clone”会导致以下消息:
在“准备回购”阶段失败:检出子模块出错:致命:.gitmodules中未找到子模块路径“主题/海洋”的网址
·尝试“ git子模块添加”导致以下结果:
在“建筑工地”阶段失败:部署目录“ public /”不存在
一种临时解决方案似乎是删除主题内的.git文件夹,但是还有更好的选择吗?
答案 0 :(得分:0)
请注意,Netlify的CI会将其中具有.git/
子目录的任何子目录视为一个子模块,并尝试使用git submodule update
命令对其进行更新,如果未配置,则此操作将失败子模块是有意的(相反,只是像您可能所做的那样,git clone
将另一个仓库放入仓库中)。
假设您已经正确设置了子模块(有关详细信息,请参见this article),则可以尝试查看本地存储库根文件夹中.gitmodules
中引用的URL。
如果您对要在netlify上部署的存储库有控制权,则可以首先在本地克隆update the URL of the submodule with one that works,推送,然后部署新更新的存储库。
答案 1 :(得分:0)
当存储库使用从另一个存储库克隆的文件但没有为该存储库创建的源存储库的映射引用时,会发生这种情况。映射需要添加到您正在使用的存储库的根目录中的.gitmodules
文件中。
要创建映射参考,请在您的.gitmodules
文件中输入以下内容:
[submodule "path_to_submodule"]
path = path_to_submodule
url = git://url-of-source/
path_to_submodule
是存储库中将使用子模块的实际路径(相对于根目录),而url-of-source
是包含子模块文件的原始存储库的URL。 / p>
如果您希望从存储库中删除不需要的子模块,请在本地存储库中运行以下命令,然后将更改推送到远程:
git rm --cached path_to_submodule
path_to_submodule
是子模块的路径。
参考:https://www.deployhq.com/support/common-repository-errors/no-url-found-for-submodule