Drawing a blank with finalizing my deploy scheme here. After posting this question: Migrating a production site with no VCS at all to Git, I've got the gist of deploying to a local repo down.

My local development server has a git-flow repository on it that I can push to and it will update an external worktree.

I have my repo set up with git-flow and here's what my origin remote looks like:

$ git remote show origin
* remote origin
  Fetch URL: ssh://user@host/var/git/dev/repo.git
  Push  URL: ssh://user@host/var/git/dev/repo.git
  HEAD branch (remote HEAD is ambiguous, may be one of the following):
    develop
    master
  Remote branches:
    develop tracked
    master  tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local refs configured for 'git push':
    develop pushes to develop (up to date)
    master  pushes to master  (up to date)

What I attempted to do, was set up 2 pseudo-environments. One for staging and one for production. I want to have them behave as follows:

git push staging #pushes to remote staging repo with a post-receive hook "git checkout develop -f"

git push production #pushes to remote production repo with a post-receive hook "git checkout master -f"

This way, we can develop locally and push to our little internal development server and have all the history. Then when we're clear for staging/production, we just push out the appropriate branches.

I tried creating bare repos with separate work trees like I did with the development server (see my link at the beginning of the post), and simply did:

git push staging develop
git push production master

And here are the remotes, respectively:

$ git remote show staging
* remote staging
  Fetch URL: ssh://user
Edit
Report