title: Git switch remote branch whilst keeping added content
body: <p>We are making use of <a href="https://github.com/redmine/redmine" rel="nofollow">Redmine</a>. We develop a plugin. I want to add the redmine code base to our own repository. Thus allowing us to pull changes from the linked upstream repository (redmine's git repo). This makes sense if I stick to the redmine master branch. However, I want to develop the plugins for the 2.3-stable branch. Once we have the plugin in production, then I would like to be able to migrate to redmine 2.4 etc. Slowly testing along the way. At the same time we are wanting to deploy our whole repo (including redmine files) to our production server. In this way, we can develop the plugin and get a new version of redmine running locally, then deploy to our servers and all should work fine. Deployment will happen using capistrano. So the capitstrano files will also need to be added to our repository.</p>
  
  <p>What I have tried is to checkout our empty repository. Add the redmine repository as the upstream, fetch the upstream. Then I added the plugins to the empty plugins directory and added the files to the commit. My issue is that this is on the master branch. If I do the same on the 2.3-stable branch then I am unable to move the plugins another branch as merging 2.3-stable with master will cause merge conflicts.</p>
  
  <p>What is the best way to approach this set up? Do I have a separate branch for the plugins and some how rebase the 2.3-stable to include the plugins. Thus developing on the plugins branch and just rebasing with each version branch I want to deploy.</p>
  
  <p>To sum it all up. Basically I want to fork the repo but swap versions whilst retaining the plugin development.</p>