我正在尝试建立我的第一个基于Git的WordPress主题开发,使用根作为我的起始主题。我计划在当地开发一个主题,并时不时地推到我的Dreamhost VPS。在Dreamhost Wiki上阅读一些信息。我还学习了David Winter关于使用Git设置WordPress核心更新选项的教程。我还为我的主题建立了另一个以主题根为基础的repo。也许我也应该把它作为一个子模块,但我只是在这里学习。。我在服务器上设置了一个裸回购,并在本地尝试发出拉取请求,但这不起作用。
本地
对于我的本地主题,我有这样的:
$ pwd
/opt/local/www/imagewize/wp-content/themes/img/.git
jaspersmbp:.git jasper$ cat config
这里是主题的git配置文件:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
[remote "origin"]
url = ssh://me@domain.com/~/domain.com/wp-content/themes/img
fetch = +refs/heads/*:refs/remotes/origin/*
WordPress子模块详细信息如下:位置:
$ pwd
/opt/local/www/imagewize
Git配置文件:
core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
[submodule "wordpress"]
url = git://github.com/WordPress/WordPress.git
远程
在主题内的远程DH VPS上,我有这样的配置:
core]
repositoryformatversion = 0
filemode = true
bare = true
当我在本地主题内并尝试连接到Dreamhost VPS时,我得到:
$ git pull origin master
fatal: Couldn't find remote ref master
me:img jasper$ fatal: The remote end hung up unexpectedly
调试
$ git branch -a
本地加载nada。。
git push origin master
error: src refspec master does not match any.
error: failed to push some refs to 'ssh://me@domain.com/~/imagewize.com/wp-content/themes/img'
更新
在配置中调整了url,现在我得到了:
git push origin master
fatal: '/imagewize.com/wp-content/themes/img' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
更新II
我做了更多的在线阅读,在我发现src-refspec-master在git中推送提交时与任何内容都不匹配后,我意识到我确实添加了内容,但没有提交。
git commit -m 'Initial commit'
[master (root-commit) 7bbcd6a] Initial commit
137 files changed, 17766 insertions(+)
create mode 100644 .gitignore
.........
然后:
$ git push origin master
Counting objects: 150, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (144/144), done.
Writing objects: 100% (150/150), 259.70 KiB, done.
Total 150 (delta 26), reused 0 (delta 0)
To ssh://me@domain.com/~/domain.com/wp-content/themes/img/
* [new branch] master -> master
我们开始行动了!
只是不知怎么的,我的本地文件没有上传到远程主题文件夹
$ ls -lha
total 16K
drwxrwxr-x 7 me server 147 Oct 7 20:21 .
drwxr-xr-x 6 me server 105 Oct 7 20:21 ..
-rw-rw-r-- 1 me server 23 Oct 7 20:21 HEAD
drwxrwxr-x 2 me server 10 Oct 7 20:21 branches
-rw-rw-r-- 1 me server 66 Oct 7 20:21 config
-rw-rw-r-- 1 me server 73 Oct 7 20:21 description
drwxrwxr-x 2 me server 4.0K Oct 7 20:21 hooks
drwxrwxr-x 2 me server 28 Oct 7 20:21 info
drwxrwxr-x 4 me server 40 Oct 7 20:21 objects
drwxrwxr-x 4 me server 41 Oct 7 20:21 refs
,但我应该尽快解决的。。
更新III
裸存储库没有一个工作目录,这里似乎对此进行了解释。他们似乎说我应该在生产中克隆。因此,无论我在哪里创建裸存储库,都不是我克隆最终结果的地方。
只需更改设置即可。我推到的地方只是git repo,用于跟踪Github等更改,无论我想在哪里得到最终结果,我都会克隆repo。