Develop WordPress theme with Git on Dreamhost

I am trying to set up my first Git based WordPress theme development using roots as my starting theme. I was planning to develop a theme locally and push to my Dreamhost VPS every now and then. Read some info on the Dreamhost Wiki. I also followed David Winter’s tutorial on setting up a WordPress core update option with Git.
I also set up another repo for my theme with the theme roots as a basis. Perhaps I should have made it a submodule too, but I am just learning by doing here.. I set up a bare repo on the server and locally I tried to make a pull request, but this is not working.

Locally

Read More

For my local theme I have this:

$ pwd
/opt/local/www/imagewize/wp-content/themes/img/.git
jaspersmbp:.git jasper$ cat config

and here the git config file for the theme:

[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 submodule details are:
location:

$ pwd
/opt/local/www/imagewize

Git config file:

core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
[submodule "wordpress"]
    url = git://github.com/WordPress/WordPress.git

Remote

On the remote DH VPS inside the theme I have this config:

core]
    repositoryformatversion = 0
    filemode = true
    bare = true

When I am inside the theme locally and try to connect to Dreamhost VPS I get:

$   git pull origin master
    fatal: Couldn't find remote ref master
    me:img jasper$ fatal: The remote end hung up unexpectedly

Debugging

$ git branch -a

loads nada locally..

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'

Update

Adjusted url in config and now I get:

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

Update II

I did some more online reading and after I found src refspec master does not match any when pushing commits in git I realized I did do adds, but no commit.

git commit -m 'Initial commit'
[master (root-commit) 7bbcd6a] Initial commit
 137 files changed, 17766 insertions(+)
 create mode 100644 .gitignore
.........

And then:

$ 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

And we are up and running!

Only somehow my local files were not uploaded to the remote theme folder

$ 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

, but I should work that out soon enough..

Update III

Bare repositories do not have a working directory it seems explained here. They seem to say I should clone on production. So wherever I create the bare repository is not where I clone the final result.

Related posts

Leave a Reply

1 comment

  1. Will just have to change the setup. Where I push to will just be the git repo for keeping track of changes like Github and wherever I want to have the end result I will clone the repo.