1. git-flow
git-flow也叫做git的工作流程图吧,是git分支的一种模型化,同时也规定了开发的一些规则。
明确规定各个分支的职能,与操作规则,可以有效防止多人同时开发造成分支混乱的问题出现。
这是一个简单清晰的示例图
master:
面向产品发布用的分支。发布之后会打上标签(Tag)
※一般不会在这个分支上开发
develop:
面向开发用的分支,代码安定,开发并测试合格后(达到可发布状态)合并到release分支。
※一般也不会直接在这个分支上开发
feature:
新机能开发用的分支,开发前从develop分支切出,开发后再合并到develop分支。
hotfixes:
发布之后对应紧急问题用分支(关键错误修复等)。
直接从master分支切出,修改好之后再合并到master和develop分支。
release:
用来准备向生产环境发布用的代码的分支。
从开发并测试OK的develop分支切出。
在这个分支上进行发布前测试,没有问题之后合并到master和develop分支。
这样做有如下好处
- 主环境的仓库和开发中的仓库区别开有利于因为误操作导致的主环境瘫痪的问题出现。
- 每次开发,修改都切出一个自己的分支,可以在发布之前免受别人发布的干扰。
- 发布后的紧急对应也是同样,可以免受别发发布的干扰。
- 可以留下详细的历史记录,便于后续完题追踪与调查。
2. 开发~发布流程
⑴ 开发
① 从develop分支切出一个feature分支(feature/XXXXXX分支)
git checkout develop
git checkout -b feature/XXXXXX
git push -u origin feature/XXXXXX
②在 feature/XXXXXX分支进行开发
git add
git status
git commit
git push
③ 开发结束之后、将feature/XXXXXX分支合并到develop分支(本地仓库)
git checkout develop
git pull
git merge feature/XXXXXX
④ 将develop提交到远程仓库
git push