master分支:
生产分支,最稳定的版本,一直是ready toeploy状态。不接受开发人员直接commit只接受从其他分支merge操作。在很多企业中,这个分支被默认启分支保护,只有维护者可以操作。
hotfix分支:
线紧急bug。bug解决后需要合入master分支并打上新的版本从master分支拉取的临时修复分支,用于解决号,这个修改也需要同时合入develop分支
develop分支:
从master分支拉取的开发分支,用于功能集成包含所有要发布到下一个Release的代码,用于开发集成、系统测试。
release分支:
临近既定的发布日,就从develop分支上拉取一个felease分支,任何不在当前分支中的新功能都推到下个发布中。release分支用于发布,所以从当前时间点之后新的功能不能再加到这个分支上,这个分支只做Bug修复、文档生成和其它面向发布的任务。当对外发的工作都完成了,release分支合并到master分支并分配一个版本号打好Tag;另外,这些从release分支亲做的修改要反向合并回develop分支
feature分支:
开发者使用的特性分支,父分支是develop分支,当新功能完成时,合入develop分支。新功能提交从不直接与master分支交互。
一、实验场景
二、具体步骤
1、进入公司git下载项目并创建分支
下载好项目
建立develop追踪远端分支
建立需要开发的分支featureA 到develop下
将创建好的分支推送到远程仓库
2、在featureA中写自己的代码并上传
提交并推送
推送成功
3、合并分支并重新本地拉取develop
这里合并逻辑错了,应该合并给develop,而不是master
切换到develop然后拉取审核通过后的远端develop
4、发布版本
创建release-v1分支用于发布
发布成功(最好再加一个release.md对该版本进行说明)
5、合并release到master和develop
将release-v1合并到master,然后打上标签(同时创建快照),master就是用户下载的项目
最后可以将release-v1删除,快照存在依旧可以找回
6、修改bug
先pull确保本地master和develop都是最新
新建一个hotfix分支
在分支中修改bug并推送
从hotfix合并到master、develop
新建标签v1.1
没问题后删除分支