title: How semantic versioning fits into the git workflow
body: <p>I'm currently having trouble using semantic versioning with git. </p>
  
  <p>We are using the git versioning model at <a href="http://nvie.com/posts/a-successful-git-branching-model/" rel="noreferrer">http://nvie.com/posts/a-successful-git-branching-model/</a></p>
  
  <p>We would also like to follow the semantic versioning guidelines outlined at <a href="http://semver.org/" rel="noreferrer">http://semver.org/</a></p>
  
  <p>Here is a sample use case for us.</p>
  
  <pre><code>Release branch: ----1----2----3----4 &lt;- tag v1.2        ----7---8---9 &lt;- tag v1.3
                     /                \                  /             \
  Develop branch: --0--------5---------4--6-----------------------------9--
  </code></pre>
  
  <p>Here's our sample use case:</p>
  
  <ul>
  <li>Development occurs in parallel on release and develop</li>
  <li>Release is ready to go, we tag it as v1.2. We generate release notes for changes 1, 2, 3, 4. </li>
  <li>We merge release back to develop.</li>
  <li>When we are ready to branch of develop again for another release, we can. However, tag v1.2 is pointing to 4, so the release notes for 5 is effectively lost if we query for changes between v1.2 and v1.3</li>
  </ul>
  
  <p>What we would like to do is to be able to search for all newly added checkins since tag v1.2 was created that are newly incorporated into tag v1.3 so that we can determine what kind of version bump (x.y.z) for our component we need to make. </p>
  
  <p>If 5 happened to be a major change, but everything from v1.2 onwards isn't, we will incorrectly bump the minor version since checkin 5 was not in the build.</p>
  
  <p>Does anyone have any suggestions on how this can be solved?</p>