I\'ve got a 2 web servers, one testing and one live. Both have their codebases managed with git.
I develop on the testing server, then push the changes from a master
It sounds like you're pushing into a non-bare repo (that is, one that has a copy of the repo's files checked out on-disk). You can push into it, but Git won't automatically update the working-copy files without a git reset
(or git checkout
). You could use a post-receive hook to do the checking out automatically, though -- there's a good how-to available here.
mipadi is right that you really need to have a bare repo to pull from on your production server. If you're not comfortable with a post-commit hook (lots of people aren't). You can create a cron job on that server that runs git pull origin master every half hour or so.