title: Updating current tree to Git's HEAD
body: <p>I've got a staging server with Git on it, my buddy and I push changes to that Git repo from our local clones of that repo, when we're ready to make something public, we tag it 'n all that, but then I have to do a <code>git reset --hard</code> to update the actual files on the server to HEAD, which seems a bit strange to me.</p>
  <p>I think the issue might be a fundamental misunderstanding of how git works. Usually, I branch my code on my local repo, work on it, then merge it to the master repo, then <code>git push</code>, is this correct?</p>