1.Git 分支模型
经典 Git-Flow
两个常驻分支(master & develop),代码开发都在临时分支上进行。需要做好日常管理(如及时删除已合并的临时分支),否则容易导致混乱。
2.主要分支
- master 主干分支,稳定版代码,生产环境版本代码 (prd 正式环境; Tag)
- develop 主干分支,开发版代码,dev/qa 环境版本代码 (dev、qa 环境)
- feature 功能开发分支 (dev 环境)
- release 发布分支, 不允许直接修改代码 (uat 环境)
- hotfix 修复分支 (qa、uat、prd 环境)
3.临时分支
1 版本功能分支(feature)
从 develop 分支创建,用于版本功能开发,完成后要合并回 develop 分支
2 个人特性分支(feature)
从 feature 分支创建,用于个人版本功能开发,完成后要合并回 feature 分支
3 稳定分支(release)
从 feature 功能分支创建,用于预发布环境进行测试及产品验证,完成后要合并回 develop 和 master 分支
4 修复分支(hotfix)
从 master 分支创建,用于预发布 / 生产环境上的 Bug 修复,完成后要合并回 develop 和 master 分支
4.分支清理
1 谁创建谁负责清理
2 临时分支在发布生产环境后清理
5.项目分支
1 新项目需从原工程 gitlab 上 fork, 不允许 checkout 新分支
6.命名规则
- 创建版本功能分支,名称要以 feature/ 开头,加上产品迭代版本号;如:feature/1.1.3
- 创建个人特性分支,名称要以 feature/ 开头,加上产品迭代版本号,加上个人标识;如:feature/1.1.3-yy
- 创建发布分支,名称要以 release/ 开头,加上产品迭代版本号;如:release/1.1.3
- 创建 Bug 修复分支,名称要以 hotfix/ 开头,加上已发布产品迭代版本号 (即上个版本号);如:release/1.1.2
- 创建标签 Tag,名称要以 v 开头,加上发布版本号和日期;如:v1.1.3-2022-01-26
Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 创建,用于有效、高速地处理从小到大的项目版本管理。Git 是目前世界上最流行的版本控制系统之一,广泛应用于软件开发中。
以下是 Git 的一些核心概念和功能:
- 分布式版本控制:与集中式版本控制系统(如 SVN)不同,Git 允许每个开发者拥有完整的代码库副本,包括完整的历史记录。
- 分支(Branching):Git 支持快速创建和合并分支。分支是指向代码库中特定提交的可移动指针。
- 合并(Merging):合并是将两个或多个开发历史合并在一起的过程。
- 标签(Tagging):用于标记特定的提交,通常用于版本发布。
- 暂存区(Staging Area):也称为索引,是准备下一次提交的文件列表。
- 提交(Commit):保存项目历史和文件快照的记录。
- 远程仓库(Remote Repositories):可以是服务器上的仓库,用于与他人共享代码。
- 克隆(Cloning):从远程仓库复制代码库到本地。
- 拉取(Pull):从远程仓库拉取最新的代码并合并到本地。
- 推送(Push):将本地的提交推送到远程仓库。
- 拉取请求(Pull Requests):在分布式开发环境中,用于请求将你的更改合并到主分支。
- 分支策略:Git 支持多种分支策略,如 Git Flow、GitHub Flow 等。
- 钩子(Hooks):Git 允许在特定事件发生时执行脚本,如提交前、推送前等。
- 子模块(Submodules):允许将一个 Git 仓库作为另一个 Git 仓库的子目录。
- 工作流:Git 支持多种工作流,如集中式工作流、功能分支工作流等。
Git 的命令行工具非常强大,但同时也有图形用户界面(GUI)客户端,如 GitHub Desktop、SourceTree、GitKraken 等,使得非技术用户也能轻松使用 Git。
Git 通常与 GitHub、GitLab 或 Bitbucket 等在线托管服务一起使用,这些服务提供了额外的功能,如代码审查、持续集成/持续部署(CI/CD)、项目管理工具等。