Git 工作流记录
Git 工作流
1. Git的优势
- 分布式的版本管理,可以离线工作
- 记录整个分支的变更记录
- 切换分支很快
2. 中心式协同工作流
2.1 介绍
- 从服务器上 git pull origin master把代码同步下来
- git commit到本地仓库
- git push orgin master远程仓库
2.2 异常情况
如果在第 3 步发现 push 失败,因为别人已经提交了,那么你需要先把服务器上的代码给 pull 下来,为了避免有 merge 动作,你可以使用 git pull --rebase 。这样就可以把服务器上的提交直接合并到你的代码中,对此,Git 的操作是这样的。
3 功能分支协同工作流
3.1介绍
- git checkout -b new-feature 创建“new-feature”分支(针对某一功能)
- 负责该分支的人员进行add、commit操作
- 开发完成后git push -u orgin new-feature 把分支push到服务器上
- 其他人员 git pull -rebase 拿到最新的这个分支的代码
- 最后 Pull Request 方式Code Review后合并到Master分支上
3.2 分支模型图
4. GitFlow 协同工作流
4.1 背景需求
- 有一个分支保持干净,永远可以发布到线上
- 代码可以上线时依旧可以开发下一个版本的代码
- 已经发布的代码可以做Bug-Fix,而且不会把正在开发的代码提交到生产线上去
4.2 介绍
4.3 分支类型
- master分支:主干分支,用作发布环境,上面的每一次提交都是可以发布的。
- Feature分支:功能分支,用于开发功能,对应开发环境
- Developer分支:开发分支,一旦功能开发完成,就把功能分支向Developer分支合并,合并完成后删除功能分支。这个分支对应集成测试环境
- Release分支:当Developer分支测试达到可以发布时,开出一个Release分支做发布前的准备工作(对应预发环境) Release分支可以上线时,把Release分支向Master分支和Developer分支同时合并,保证代码一致性,然后把Release分支删除
- HotFix分支:处理线上Bug分支,从Master分支拉出,处理完成后向 Developer和Release分支合并
5 GitHub Flow
5.1 介绍
-
把官方库的代码fork到自己的代码库
-
开发人员再自己的代码库中任意开发
-
开发人员的代码库中配置两个远程仓库,一个自己的远程昂库,一个官方仓库
-
本地建“功能分支”,在该分支上做代码开发
-
功能被push到开发人员自己的代码仓库中
-
向“官方库”发起pull request,并做Code Review,一旦通过就向官方库合并。
比较依赖好的CI/CD工具
6 GitLab Flow
6.1 介绍
相比GitHub Flow,引入环境分支
7 协同工作流的本质
- 不同团队能尽可能地并行开发
- 不同软件版本和代码的一致性
- 不同环境和代码的一致性
- 生产环境上的代码总是能对应到稳定的代码上