Semantic Versioning vs Git commit hashing