2012-07-19 52 views
3

我有我的WordPress项目在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 /配置中定义的网址“

如何将我的主题回购定义为子模块,当它主要托管在项目内部而不是在单独的在线存储库时?

谢谢。

+0

我只是把wp-content作为我的git的根目录,然后使用.gitignore删除我不想看到的插件。自定义插件和主题一起跟踪。 – 2012-08-06 13:24:40

回答

5

我对使用子模块还比较陌生,但我一直在尝试做类似的事情,发现两篇博客文章相当有用:一篇是Clint Berry,另一篇是David Winter

一个子模块的原理是,它应该有一个单独的回购,然后当你子模块添加到新的项目中添加子模块命令应指向回购:

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

+0

第二个环节(David Winter)坏了。 – LC1983 2017-03-27 13:08:57

+1

更新了链接。 – nsecord 2017-03-28 15:31:06