GitFlow规范和指令
前言在利用Git管理团队代码的时候,都会涉及到如何管理分支,如何发布版本的问题。如果能够制定一套统一的规则,就能够有效的保障团队的开发流程和效率。如下流程主要参考自 A successful Git branching model 进行的一个设计。能够确保各个分支的合理使用,以及发布版本的管理。此外,以下介绍的流程没有涉及到Pull Request 相关的操作,为的是能够快速地将每个开发的代码合并到主要分支,如果希望添加 Pull Request 的流程,可以在功能分支合并到开发分支中添加。 流程详细见: 中文:介绍一个成功的 Git 分支模型 英文:A successful Git branching model 主分支(长期分支) master 可执行版本记录分支,上面的每个节点都是发布到线上的一个版本,具体的版本号由tag确定develop 代码开发分支,所有开发辅助分支(短期分支) feature 详细功能分支,每个功能分支应该尽可能的小(最好一天以内),开发完成之后尽快移入仓库中release 测试版本发布分支,同时接收该版本的bugfix,直到稳定之后再发布到master,并合并到develop中。hotfix 紧急修复线上bug分支,直接从master的版本分出,同时最小版本号加1。修复完成后发布一个最新版本,同时合并到develop中。版本发布分支: master可执行版本记录分支,上面的每个节点都是发布到线上的一个版本,具体的版本号由tag确定 命名规范master是一条长期分支,仅有master这个名字。 commit note直接表示merge:Merge branch 'release/v1.0.1' 表示版本升级Bump version to v1.1.1 建议使用第二种,因为不想gitlab, github上的节点并不能看到tag,所有只能通过commit note来进行识别,而第二种可以清楚地表达出版本的变化的意思,而不是第一种的git操作。 注意 代码合并的时候,请务必使用 git merge --no-ff <branch-name> 这样会是分支的节点更加清晰,分支中才不会有无关的commit node,特别是对master分支极为重要。方便对代码的review,可以很清楚地知道这个功能修改了那些内容方便出错的时候进行回退,只需要回退一个节点接口完成代码的回退在代码发生冲突的时候,git会为我们创建一个节点,也就是平时看到的“Merge”信息的节点。但如果被合并的代码超前于目标分支,git就会将所有的节点都合并到目标分支中,而不是生成一个新的节点再合并。这对于master分支简直就是灾难,因为release分支或者hotfix分支必然是超前于master分支的。Tag操作每个tag即表示一个版本,也就是合并一个分支到master都需要打一个tag。 # git tag v1.2.3 #你可以省略对这个tag的说明git tag -a v1.2.3 -m "This is comment" [<commit-id>]git push origin v1.2.3[参考] 廖雪峰的官方网站-创建标签 廖雪峰的官方网站-操作标签 ...