企业级项目分支管理一. 为何要进行分支管理二. 分支管理策略

主分支,用于部署生产环境的分支,是所有分支的主干,与当前线上代码保持统一

由主开发人员、研发组leader管控

不允许开发者在该分支上直接开发

开发分支,开发各类功能的合并分支,即当前最新功能的分支

项目按功能模块创建dev-xxx分支(xxx 表示功能的简单描述),各人员开发完成后提交到dev分支,主开发人员审核后,合并到dev分支

一般预发布分支从此分支拉取创建

不允许开发者在该分支上直接开发

功能分支,一般为 开发独立功能/新技术研究尝试 时创建,以feature-xxx命名(xxx 表示功能的简单描述)

从master/dev分支上面分出来的,开发完成,合并回去之后,删除该分支

开发周期较长时,建议定期拉取代码,避免长时间不更新git分支合并到主干,提交时冲突过多

预发布分支,发布正式版本之前(即合并到master分支之前),用来进行测试,以release-xxx命名(xxx 表示功能的简单描述)

从dev分支拉取代码创建,如出现bug,则从release分支拉取fixbug分支,进行修复

很多公司忽略该分支,直接提交到master进行发布,可根据公司情况进行选择

不允许开发者在该分支上开发

bug修复分支,修复完成之后,合并到master/release分支上,并删除该分支

常规bug,以 bugfix_xxx 命名。xxx 表示 bug 的简单描述。

紧急bug, 以 hotfix_xxx 命名。xxx 表示 bug 的简单描述

tag标签

每次从master发布生产环境后,用tag标记一个版本,在master分支上的每个tag都对应历史的一个线上版本

tag命名:

v主版本号.子版本号.阶段版本号.日期版本号_软件阶段

v1.0.0.051021_beta

v1.0.0.061021_release

三. 分支相关常用命令

# 列出所有本地分支
$ git branch

# 列出所有远程分支
$ git branch -r

# 列出所有本地分支和远程分支
$ git branch -a

# 新建一个分支,但依然停留在当前分支
$ git branch [branch-name]

# 新建一个分支,并切换到该分支
$ git checkout -b [branch]

# 新建一个分支,指向指定commit
$ git branch [branch] [commit]

# 新建一个分支,与指定的远程分支建立追踪关系
$ git branch --track [branch] [remote-branch]

# 切换到指定分支,并更新工作区
$ git checkout [branch-name]

# 切换到上一个分支
$ git checkout -

# 建立追踪关系,在现有分支与指定的远程分支之间
$ git branch --set-upstream [branch] [remote-branch]

# 合并指定分支到当前分支
$ git merge [branch] # 快速合并
$ git merge --no-ff [branch] # 非快速合并(建议使用)

# 选择一个commit,合并进当前分支
$ git cherry-pick [commit]

# 删除分支
$ git branch -d [branch-name]

# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

四. 总结

1. 长期存在的分支只有master和dev分支git分支合并到主干,其他分支都是多个且临时的

2. 根据公司的产品规划及项目大小,制定合理的规范

限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688