首页 > 其他分享 >git分支管理

git分支管理

时间:2023-10-10 13:33:37浏览次数:27  
标签:git develop 管理 feature master release 分支

# MASSCMS 代码 Git 分支管理规范
> MASSCMS 代码 Git 分支管理规范
## 一、分支与角色说明
Git 分支类型   master 分支(主分支) 稳定版本   develop 分支(开发分支) 最新版本   release 分支(发布分支) 发布新版本   hotfix 分支(热修复分支) 修复线上 Bug   feature 分支(特性分支) 实现新特性   _project 分支(项目分支)每个新的项目单独开一个分支_
角色与项目角色对应关系   Owner(拥有者) Git 管理员   Master(管理员) 开发主管   Developer(开发者) 开发人员   Reporter(报告者) 测试人员   Guest(观察者) 其他人员
## 二、分支简明使用流程
1. 每开发一个新功能,创建一个 feature 分支,多人在此分支上开发; 2. 提测时,将 master 分支和需要提测的分支汇总到一个 release 分支,发布测试环境; 3. 发现 bug 时,在 feature 分支上 debug 后,再次回到 2; 4. 发布生产环境后,将 release 分支合并到 master 分支,删除 release 分支; 5. _项目的功能定制,单独在 project 分支进行,每个 peoject 分支下面开设单独的 feature 分支;_
## 三、创建新项目(master 分支)
主分支,主分支只用来发布重大版本。所有提供给用户使用的正式版本,都在这个主分支上发布。
- 开发主管提交代码初始版本到 master 分支,并推送至 Git 系统; - 开发主管在 Git 系统中设置 master 分支为 Protectd 分支(保护分支); - Protected 分支不允许 Developer 角色推送代码,但 Master 角色可以推送代码;
## 四、进行产品迭代开发(develop 分支)
日常开发基于此分支来完成。
- 开发主管在 master 分支上创建 develop 分支(开发分支),并推送至 Git 系统; - master 分支与 develop 分支一样,有且仅有一个; - 对于非并行项目可以使用 develop 分支开发方式,对于多人并行开发项目,使用 feature 分支开发方式,但 develop 和 feature 开发方式不应同时使用;
Git 创建 Develop 分支的命令:
`git checkout -b develop master`
将 Develop 分支发布到 Master 分支的命令:
### 切换到 Master 分支
`git checkout master`
### 对 Develop 分支进行合并
`git merge –no–ff develop`   这里稍微解释一下,上一条命令的–no–ff 参数是什么意思。默认情况下,Git 执行”快进式合并”(fast-farward merge),会直接将 Master 分支指向 Develop 分支。使用–no–ff 参数后,会执行正常合并,在 Master 分支上生成一个新节点。为了保证版本演进的清晰,我们希望采用这种做法。关于合并的更多解释,请参考 Benjamin Sandofsky 的《Understanding the Git Workflow》。
## 五、开发产品新特性(feature 分支)
功能分支,它是为了开发某种特定功能,从 Develop 分支上面分出来的。开发完成后,要再并入 Develop 分支。   _命名规则:采用 feature/feature1 的形式_
- 每个新需求或新的研究创建一个 feature 分支; - 命名规范:   f-分支创建日期-新特性关键字,例如:f-20150508-满立减; - 推荐使用 feature 分支,但 feature 分支的生命周期不能跨一次迭代;
创建一个功能分支:
`git checkout -b f-20150508-满立减 develop`
开发完成后,将功能分支合并到 develop 分支:
`git checkout develop`
`git merge –no-ff f-20150508-满立减`
删除 feature 分支:
`git branch -d f-20150508-满立减`
## 六、发布产品测试环境(release 分支)
release 分支,它是指发布正式版本之前(即合并到 Master 分支之前),我们可能需要有一个预发布的版本进行测试。   release 分支是从 Develop 分支上面分出来的,预发布结束以后,必须合并进 Develop 和 Master 分支。   _命名规则:采用 release/release1 的形式_ 开发负责人需完成以下任务:
- 确认要发布的 feature 分支上的功能是否开发完毕并提交; - 创建 release 分支(发布分支),将所有要发布的分支逐个合并到 release 分支,有如下情况: - ①.feature 分支(可能有多个) - ②.master 分支(期间可能有其他 release 版本更新到了 master) - 命名规则:r-分支创建日期-新特性和待发布版本号,例如:r-201505081712-买立减 v1.0.0,版本可根据需要添加; - 删除本次发布的所有 feature 分支; - 发布到测试环境,通知测试;
创建一个预发布分支:
`git checkout -b release-1.2 develop`
确认没有问题后,合并到 master 分支:
`git checkout master`
`git merge –no-ff release-1.2`
# 对合并生成的新节点,做一个标签
`git tag -a 1.2`
再合并到 develop 分支:
`git checkout develop`
`git merge –no-ff release-1.2`
最后,删除预发布分支:
`git branch -d release-1.2`
## 七、修复待发布版本中的 Bug(hotfix 分支)
修补 bug 分支。软件正式发布以后,难免会出现 bug。这时就需要创建一个分支,进行 bug 修补。   修补 bug 分支是从 Master 分支上面分出来的。修补结束以后,再合并进 Master 和 Develop 分支。   _命名规则:采用 hotfix/fixbug1 的形式_   如果发现 bug,开发人员在 feature 分支上修复测试人员提交给自己的 bug,修复完成后,由负责人再次创建 release 分支,发布测试环境。
创建一个修补 bug 分支:
`git checkout -b fixbug-0.1 master`
修补结束后,合并到 master 分支:
`git checkout master`
`git merge –no-ff fixbug-0.1`
`git tag -a 0.1.1`
再合并到 develop 分支:
`git checkout develop`
`git merge –no-ff fixbug-0.1`
最后,删除”修补 bug 分支”:
`git branch -d fixbug-0.1`
## 八、发布产品正式环境
开发负责人需完成以下任务:   根据修复后的 release 分支再次将 master 合并,打包发布生产环境; 确认发布成功,并线上验收通过后,将 release 分支合并到 master 分支;   在 master 分支上创建标签,命名规则:tag-日期-新特性和版本号,例如:tag-201505081712-买立减 v1.0.0,版本可根据需要添加,作为发版里程碑标记;   删除对应 release 分支;
## 九、修复产品线上 Bug(hotfix 分支)
线上的不同版本出现了 bug 怎么办?开发负责人需完成以下任务:   从 master 分支某个 tag 上创建一个 hotfix 分支(热修复分支),一般是最新的 tag 应该和当前生产环境对应; 命名规则:h-分支创建日期-bug 名称和待发布版本号,例如:h-201705081614-购物车点击没反应 v1.0.1;   开发人员完成 Bug 修复,提交 hotfix 分支到测试环境验收通过;   再次发布正式环境流程;   将 hotfix 分支合并到 master 分支;   在 master 分支上创建标签,命名规则:tag-日期-新特性和版本号,例如:tag-201505081712-买立减 v1.0.0,版本可根据需要添加,作为发版里程碑标记;   删除 hotfix 分支;
## 十、定制化项目开发
## 十一、Git 的特别注意事项
- 使用 Git 过程中,必须通过创建分支进行开发,坚决禁止在主干分支上直接开发。 - 提交时,一定要填写有意义的注释。 - 由于 git 分支是基于指针的概念,所以分支速度非常快,当多个分支时,实际指针指向的是同一个文件,当文件被修改时,使用的是暂存区保存修改,此时并未提交到相应分支。 - 所以切换分支的时候,暂存区只有一个,所以切换分支之前,一定要将所有修改 commit 到当前分支,否则会在其他分支看到修改的内容,引起误解。

标签:git,develop,管理,feature,master,release,分支
From: https://www.cnblogs.com/liangpi/p/17754448.html

相关文章

  • 一个项目下有两个模块,被git识别为两个项目,需要分别推送不同仓库
    用IDEA创建git仓库写代码时,在新建SpringBoot模块后出现如下情况 解决方法:找到项目目录,在对应模块的隐藏文件夹中找到.git文件并删除删除后重新使用IDEA打开项目文件,IDEA会提示 点击配置后将目录映射中的serve移除该情况解决参考解决方案:https://blog.......
  • 软件开发项目管理体系,支撑体系,测试体系文档大全
    在软件开发过程中,文档起着至关重要的作用。它不仅记录了项目或产品的基本信息,而且还是团队成员之间沟通的重要媒介。本文将详细介绍软件开发文档的作用、结构、撰写方法以及审校步骤,以帮助读者更好地理解和应用文档在软件开发中的价值。一、认识文档文档是软件开发过程中的产物......
  • typora配置gitee图床
    PicGo图床管理插件直接下载安装在PicGo管理插件中,插件设置,安装Gitee-Uploader插件,配置Gitee参数repo:songxia2022/typoraimgstoken:ad4536686e724190f5edfe3254c1cffbTypora配置文件,偏好设置......
  • 查漏补缺,这些热门开源项目你都知道么?「GitHub 热点速览」
    查漏补缺,这些热门开源项目你都知道么?「GitHub热点速览」 本期热点速览的周榜部分的项目,基本上每周都会在GitHubTrending见到它们的身影,因为它们实在太火了。一般来说,这些火爆的项目大家都耳熟能详,但是为了防止有些小伙伴不怎么逛GitHub,以及并没有翻阅之前的月刊或者是......
  • gitignore不生效
    参考.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。gitrm-r--cached.gitadd.gitcommit-m"update.gitignore"再推送......
  • 极致科技邀您共赴2023中国国际物业管理产业博览会!(内附免费报名通道)
    10月12日至14日,由中国物业管理协会主办的物业管理行业唯一商务部报备国际展会——2023中国国际物业管理产业博览会即将在深圳会展中心(福田)8、9号馆盛大开幕。 此次博览会致力于搭建行业交流、展示、交易平台,通过多元化、多维度、多层次的展会交流,引导物业管理产业新升级。展会......
  • Linux-文件管理命令
    绝对路径:从根目录开始描述的路径pwd输入即为绝对路径,开头一定是“/”,因为一定是从根目录开始走相对路径:从当前路径开始描述的路径,开头不一定是“/”,因为不一定是从根目录开始走的.:是当前目录。。:是上层目录~/:家目录家目录:/home常用文件命令1、删除命令并且换行ctrl+c......
  • git tag 标签
    1.创建tag标签创建本地标签:gittag,如gittagv1.0。2.推送tag标签需要注意的是标签的推送跟分支的推送不是同一回事,tag标签创建后需要单独推送。推送tag标签:gitpushorigin,推送到远程仓库。如gitpushoriginv1.0。推送多个未推送的本地标签:gitpushorigin--ta......
  • MongoDB可视化管理工具-MongoDB Compass【转】
    一、引言在使用MongoDB过程中,如果单单依靠命令行操作MongoDB数据库,效率不高而且查看不方便。因此MongoDB官网提供的一个可视化管理工具,叫MongoDBCompass,它集创建数据库、管理集合和文档、运行临时查询、评估和优化查询、性能图表、构建地理查询等功能为一体,很方便。二、......
  • 案例3 配置明文远程管理协议
    1.华为设备1.1配置R1<Huawei>sys<Huawei>system-viewEntersystemview,returnuserviewwithCtrl+Z.[Huawei]sysnameHW-R1[HW-R1]intg0/0/1[HW-R1-GigabitEthernet0/0/1]ipaddress10.1.11.1291.2配置SW1<Huawei>system-view[Huawei]sysna......