版本控制及版本号的应用

语义化版本 Semantic Versioning

今天复习毛概,好无聊,就找了昨天看swift package manager上面有一个Semantic Versioning(语义化版本)的链接,讲了些版本号的格式,作用。原来对这版本号不是很了解,觉得这个东西蛮主观的,但现在发现原来还有这么大的用处,觉得这个可以很好地管理项目且很好理解。

版本格式:主版本号.次版本号.修订号

  1. 主版本号:当你做了不兼容的 API 修改,
  2. 次版本号:当你做了向下兼容的功能性新增,
  3. 修订号:当你做了向下兼容的问题修正。

    注意点:(x.y.z)

  4. 禁止在数字前方补零,如01

  5. 处于开发初始阶段时候用0.y.z,1.0.0
  6. y增加时,z归0。x增加时,y,z归0。
  7. 修订号 Z(x.y.Z | x > 0)“必须 MUST ”在只做了向下兼容的修正时才递增。
  8. 次版本号 Y(x.Y.z | x > 0)“必须 MUST ”在有向下兼容的新功能出现时递增。
  9. 主版本号 X(X.y.z | X > 0)“必须 MUST ”在有任何不兼容的修改被加入公共 API 时递增。在任何公共 API 的功能被标记为弃用时也“必须 MUST ”递增。
  10. 其他详见链接里面

Git Flow

去参加WWDC期间,晚上和舍友Adam聊到了git,我说我自己用git就一条分支,觉得没有真正发挥git的强大之处,然后他就推荐给我了git flow,到了现在才看,惭愧。

Git flow是一个基于git的管理解决方案,是git的扩展集

初始化

git flow init //原来已经有git或没有都可以

特性 Feature

增加新特性
git flow feature start MYFEATURE
完成新特性
git flow feature finish MYFEATURE
发布新特性
git flow feature publish MYFEATURE

Release 版本

开始准备release版本
git flow release start TAG // TAG如1.2.0
-------------------------------------------
git flow release publish TAG // 这是发布
完成 release 版本
git flow release finish TAG

紧急修复 hotfix

开始修复
git flow hotfix start VERSION // VERSION 如1.2.1
完成修复
git flow hotfix finish VERSION

另外SourceTree上面很好的支持了Git Flow,所以只要了解其工作原理就行了,不必完全记住命令。