5分钟搞懂大公司git分支管理

一. 为何要进行分支管理

  • 分支之间互不影响,开发者可以独立开发,提高团队开发效率;
  • 不同功能的分支形成代码隔离,发布时从主分支进行代码发布,测试在测试分支,开发在开发分支,减少出错。。

二. 分支管理策略

  • master分支
  1. 主分支,用于部署生产环境的分支,是所有分支的主干,与当前线上代码保持统一
  2. 由主开发人员、研发组leader管控
  3. 不允许开发者在该分支上直接开发
  • dev分支:
  1. 开发分支,开发各类功能的合并分支,即当前最新功能的分支
  2. 项目按功能模块创建dev-xxx分支(xxx 表示功能的简单描述),各人员开发完成后提交到dev分支,主开发人员审核后,合并到dev分支
  3. 一般预发布分支从此分支拉取创建
  4. 不允许开发者在该分支上直接开发
  • feature分支
  1. 功能分支,一般为 开发独立功能/新技术研究尝试 时创建,以feature-xxx命名(xxx 表示功能的简单描述)
  2. master/dev分支上面分出来的,开发完成,合并回去之后,删除该分支
  3. 开发周期较长时,建议定期拉取代码,避免长时间不更新,提交时冲突过多
  • release分支
  1. 预发布分支,发布正式版本之前(即合并到master分支之前),用来进行测试,以release-xxx命名(xxx 表示功能的简单描述)
  2. 从dev分支拉取代码创建,如出现bug,则从release分支拉取fixbug分支,进行修复
  3. 很多公司忽略该分支,直接提交到master进行发布,可根据公司情况进行选择
  4. 不允许开发者在该分支上开发
  • fixbug分支
  1. bug修复分支,修复完成之后,合并到master/release分支上,并删除该分支
  2. 常规bug,以 bugfix_xxx 命名。xxx 表示 bug 的简单描述。
  3. 紧急bug, 以 hotfix_xxx 命名。xxx 表示 bug 的简单描述

tag标签

  1. 每次从master发布生产环境后,用tag标记一个版本,在master分支上的每个tag都对应历史的一个线上版本
  2. 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分支,其他分支都是多个且临时的
2. 根据公司的产品规划及项目大小,制定合理的规范
 

关注公众号『web前端技术分享』获取更多实践分享,免费领取大厂面试题 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪子快跑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值