title: How to successfully keep master and development branches in sync? GIT
body: <p>I like to do development on my development branch then merge into master when I am ready to push to production. As long as I don't commit anything to the master branch all goes smoothly.</p>
  
  <p>However, I have come across situations where I have committed something to the master branch that conflicts with something that was changed on the development branch. When I merge the development branch into the master I have to resolve the conflict. No big deal, but then in order to make sure the development branch has everything in the master branch (making sure development is up-to-date) I merge the master branch in and end up having to resolve the conflicts again.</p>
  
  <p>I've heard that rebasing is generally bad, especially for things you are pushing out publicly.</p>
  
  <p>Is there a better way to manage this type of setup?</p>