title: How to manage multiple versions of a project?
body: <p>I have a project that is open sourced using <code>git</code> for revision control. Soon, I am going to release a premium hosted version of the project as well, but there will be changes made to the code specifically for the premium hosted version (performance, etc.), that should not exist in the open source version.</p>
  
  <p>I want to avoid having two separate directories/projects, because if I fix a bug in the open source version, that bug is most likely in the premium hosted version as well. I don't want to make changes in two places.</p>
  
  <p>What is the best way to manage this? Simply branching in <code>git</code> won't work right, because some files need to have 2 versions: an open source version and a premium hosted version.</p>