我在 Git 下有我的 WordPress 项目,并将 WordPress 作为子模块。我想将我的主题开发保留在一个单独的子模块中,但在当前设置中,并且在将主题设置为子模块时遇到了一些困难。
这是我的文件系统:
/.git (master repo)
/index.php
/wp-config.php
/wordpress (WordPress repo as a submodule)
/wp-content
themes
test-theme (theme repo)
.git
index.php
(etc...)
现在,当我将主存储库推送到 github,并尝试在另一台机器上克隆它时,wordpress 子模块下载正常,但我的主题文件夹没有,并且我收到关于未定义子模块的错误。
我尝试使用它来添加我的主题作为子模块:
git submodule add ./wp-content/themes/test-theme/.git ./wp-content/themes/test-theme
但我收到以下错误:“远程(原点)没有在 .git/config 中定义的 url”
我如何将我的主题存储库定义为子模块,当它本质上托管在项目“内部”而不是在线单独的存储库中时?
谢谢。
最佳答案
我对使用子模块还是比较陌生,但我一直在尝试做类似的事情,并发现两篇博客文章非常有帮助:一篇由 Clint Berry 撰写,另一篇由 David Winter 撰写。
子模块的原则是它应该有一个单独的仓库,然后当你将该子模块添加到新项目时,add submodule 命令应该指向该仓库:
git submodule add https://github.com/youruseraccount/test-theme.git ./wp-content/themes/test-theme
git init
git update
我相信这就是您收到错误的原因,没有与来源关联的 URL。查看文件 .gitmodule 和 .git/config 以确认。如果我是对的,git init 将在 .git/config 和 git update 中添加必要的条目,这将从 repo 中提取主题并将其放入子目录。
请参阅 here 了解如何提交对子模块的更改,以及 here 了解如何删除子模块。
关于wordpress - 保持 WordPress 的版本控制 - 单独的主题存储库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11559266/