title: Git subtree workflow
body: <p>In my current project I'm using an open source forum ( <a href="https://github.com/vanillaforums/Garden" rel="nofollow">https://github.com/vanillaforums/Garden</a> ). I was planning on doing something like this :</p>
  
  <pre><code>git remote add vanilla_remote https://github.com/vanillaforums/Garden.git
  git checkout -b vanilla vanilla_remote/master
  git checkout master
  git read-tree --prefix=vanilla -u vanilla
  </code></pre>
  
  <p>This way I can make change into the vanilla folder (like changing config) and commit it to my master branch and I can also switch into my vanilla branch to fetch updates. My problem is when I try to merge the branch together</p>
  
  <pre><code>git checkout vanilla
  git pull
  git checkout master
  git merge --squash -s subtree --no-commit vanilla
  git commit -a -m "update commit"
  </code></pre>
  
  <p>The problem is that the "update commit" goes on top of my commits and "overwrite" my change. I would rather like to have my commits replay on top of the update. Is there a simple way to do that? I'm not very good in git so maybe this is the wrong approach. Also, I really don't want to mix my history with the vanilla history.</p>