### 前言
为了git工作流分支能够更加的清晰规范，减少项目代码风险！
在采用 Git Flow 工作流的项目中，代码的中央仓库会一直存在以下两个长期分支：develop，master分支

Go Nextop FE!

**名词解释**
- master: 线上环境稳定的发布分支代码目前上线时所用的分支，也就是面向用户的代码
注意事项：不可以推代码至此分支!!!

- develop: 开发阶段分支维护稳定代码，不允许在develop分支进行开发新特性，公共的内容且不属于新特性的应当在develop分支进行开发

- hotfix:  基于`master`分支创建一个`hotfix`分支，用于紧急修复线上出现的bug ；分支命名示例：`hotfix/20210521-fix-router-404`
### 开发推送流程
 拿到需求后应从该项目的`master`分支拉取代码进行创建`feature`分支
 拉取代码后创建`git flow feature start {your-branch-name}`属于自己的开发分支（以下简称开发分支）
 
 分支命名规范：feature/日期-Your Name-功能简写 `feature/20200728-xxx-test`
完成新的功能开发后，只推送开发分支至远程，每次也只需要push开发分支即可
> 注意，push至远程时，需要merge一次master分支至开发分支，如果觉得频率太过频繁，可以换成每日两次（上班后和下班前）

但在每次提测前时，必须先merge一次master分支（这样保证了开发分支和master分支是同步的）

已经提测的且准备上线预发布环境不允许再次merge develop分支(切记需要注意！！！！)

-   合并代码流程及时间
> 因项目是多人协同开发，为保证代码的完整性和线上的统一性，应当在上线完成的当天完成merge至master和develop分支操作。（目前已有CI/CD流程自动完成merge至master的操作，我们只需要merge master至develop分支即可）
合并步骤： feature --> master --> develop

**Q&A**
- 分支合并时出现了冲突怎么办？
按照提示解决，如果不是属于自己的文件，找到该文件编写的同学，然后寻求他的帮助去解决。
- 忘记合并develop就推送了怎么办?
补上啊，同学。

- 出现看不懂的问题怎么办？
先自己百度/谷歌答案，如果再解决不了，寻求项目负责人的帮助。

- SaaS系统需要在各个子应用项目中修复一些全局性bug需要怎么操作？
   - 找到各个子应用相对应的负责人从master分支拉出相对应的`hotfix`分支进行修复；

-   什么时候合并master分支？
    -   目前我们的整个蓝盾CI/CD流程在上线至正式环境之后会自动合并代码至master分支，所以无需人为手动进行合并，只有当出现代码冲突merge失败的场景才需要人为手动进行。
