title: How to derive application build version string with Git's `describe` command?
body: <p>I want to compose application build version that is automatically derived from the Git branch name I am on (when building) and the number of commits since the branch has diverged. I believe this will be unique for any commit in my Git repository? Branch names are unique, and commits are linked to each other along a branch? If and when I tag a commit, I can also have the version be prefixed with that tag.</p>
  
  <p>In a way <code>git describe</code> does what I want, but it does not include the branch name I am on, and it includes abbreviated commit SHA-1 hash, which I don't think I need as it does not add anything to the entropy of the string and may be redundant (I may be wrong here, so please correct me).</p>
  
  <p>What are my options? And am I thinking in the right direction here at all? I am just a bit tired of appending numbers to versions when I have more important things to deal with with regards to software development.</p>
  
  <p>I never build with a dirty working tree, by the way. I.e. I always commit changes to the repository before building a public release.</p>