title: How to set up a git development environment when you're testing remotely
body: <p>This may seem like a silly question, but I feel like I understand GIT fairly well, and yet I can't seem to set up my development environment as I would like.  I'm either missing something really simple, or I'm going about it all wrong :)</p>
  
  <p>I initialized a bare git repo on my server, cloned it to my local machine, committed my files and pushed to origin.  Then, locally I created three branches (master, release, develop) and published them all to origin.  I intend to have multiple developers pulling from the develop branch, and I would like to make sure they can't push to the master branch but that may be better for a different question.</p>
  
  <p>Now, I make my changes to the files locally, and then upload them to the testing server and check the testing server through the web browser.  I would have to imagine that this is how most people test their work unless they have their computers configured as web servers and have php and mysql installed.  Once I'm happy with my changes, I push them to the origin repo, and everything works fine.</p>
  
  <p>My challenge comes in keeping the testing server in synch with my local machine.  I've tried setting up a repo in my remote testing directory, and I've added a second remote to my local git repo, hoping I could push to the testing repo to synch the files on the testing server with my local files.  But I can't figure out how to have two remotes and keep both of them in synch with my local machine.  </p>
  
  <p>If I create a new local branch, check it out to start working on a new feature and then push the branch to my testing remote, the head on the testing remote is still master and not my new feature branch.  Therefore, i'm making changes locally to a feature branch, but when I publish the changes to the testing server through coda, I'm actually changing files on the master branch of the testing repo.  If I can't keep my testing snapshots in synch with my local snapshots, I don't know how to take full advantage of gits branching features.  </p>
  
  <p>Is it really that crucial that I am developing AND testing locally?  How on earth does one set up a development environment with git when you have to test remotely?  Is having a testing repo the completely wrong way to think about this?  There must be a way to have multiple remotes and have them checkout to the latest branch that is pushed so you can have an instance of your local files in synch remotely on a testing server.  PLEASE HELP!</p>