git分支管理master/hotfix/develop/feature/release
·
这里写目录标题
Git简介
git是目前为止版本管理的最常用工具之一,利用git的功能,可以很容易的实现版本的发布和留档,让原本杂乱的版本管理问题变得较为简单。
工作区域
Git有四个工作区域:工作区,暂存区,本地仓库和远程仓库。
- Workspace:工作区,就是你平时存放项目代码的地方
- Index / Stage:暂存区,用于临时存放你的改动,保存即将提交到文件列表信息
- Repository:本地仓库,就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
- Remote:远程仓库,托管代码的服务器。
1.总览(一张常用的合并流程如下图)

修改原则:能改的都是个人分支,多人协调的都是被管控的管理分支
2. Git分支管理和常用流程
Git的常用分支包括:tag(git的功能,并不是真正的分支)、master、hotfix、bugfix、release、develop、feature
2.1 分支简介
| 分支类型 / 名称 | 说明 | 来源分支 | 合并目标 | 权限/注意事项 |
|---|---|---|---|---|
| tag | 发布上线时基于 master 打的标签,通常为版本号(如 v1.2.0),用于留存与线上完全一致的代码环境,便于紧急回滚或问题排查。 |
—(非分支,是 Git 标签) | — | 由项目负责人在发布时创建 |
| master | 主干分支,代表线上最新稳定版本。有且仅有一个。 | — | 接收 release 或 hotfix 的合并 |
仅项目负责人可向此分支合入;只允许已测试完成的功能或紧急修复 |
| hotfix | 紧急线上 Bug 修复分支,用于快速修复生产环境问题。 | master |
修复后合并回 master(并打 tag),同时建议同步到 develop |
需立即测试并上线;修复完成后需双向合并(master + develop) |
| release | 预发布分支,用于正式上线前的最终测试(转测分支)。 | develop |
测试通过后合并至 master(并打 tag),同时建议合并回 develop |
可进行微调(如修复测试发现的小问题),但禁止合入未完成的功能 |
| develop | 主开发分支,包含所有已开发完成但尚未上线的功能,作为开发环境部署和集成测试的基础。 | — | 接收所有 feature 分支的合并 |
所有功能需先在此集成;是 release 分支的来源 |
| feature | 功能开发分支,用于开发某个完整功能模块。 | develop |
开发完成后合并回 develop |
通常由特性组长负责,合入需代码 Review |
| feature-xxx(个人分支) | 开发人员个人工作分支,实际编码的主要场所。 | feature 或 develop(视团队规范而定) |
开发完成后合入 feature 或直接合入 develop |
个人维护;合入时需代码 Review |
2.2 命名规则
-
hotfix: hotfix_{功能},如 hotfix_providerLose。
-
release: release{功能}年月日,如 release_pubMsg_20210701。
-
feature: feature{功能}_年月日,如 feature_pubMsg_20210701。
3. 分支管理
- 上线完成,回归测试没有问题之后, 提交申请进行master的合并处理,合并入develop
- 打 Tag 维护(负责人 / Leader),视团队情况选择。最好不要省略,出问题时,一阵抓瞎
命名风格团队保持统一: v20240725-2 ,提交时添加备注 - 相关分支创建人, 删除对应上线功能 feature / hotfix 分支
4. Git代码提交规约
- 代码提交时,在commit中写清楚完成了哪些内容
- 在进行合入develop或者feature时,在合入的Merge request中写清楚方案和实现思路,方便代码review
- 理论上一次提交仅包含一个功能修改,如功能过大,需要注明功能的完成进度。若一次提交有多个功能修改,则每个功能提交描述作为单独的一行。
5. 代码提交流程
- 代码修改完成后,需先进行编码规范检查,注释检查,单元测试等操作。
- 测试通过后提交到本地,检查提交文件是否正确,有无遗漏文件,添加相关说明。
- 拉取服务器的代码,检查代码合并结果,若有冲突则找相关人员解决冲突。解决冲突后,重新编译测试代码,测试成功后提交本地代码。
- 推送代码到服务器。
- 提交merge request,提醒项目组成员进行代码review,完成后负责人合入分支
6. 拉取远程仓库代码方法
6.1 复制远程仓库url
6.2 克隆远程仓库
git clone 远端仓库url
6.3 克隆下来之后默认是master分支,想要拉取非master分支的代码,需要切换本地分支
本地分支要与远程分支同名
git branch -a // 查看所有分支,包括本地和远程
git checkout develop // 本地分支名字要与远程分支相同
更新当前分支的代码
git pull origin develop
7. 常用指令
# 添加所有文件到暂存区:
git add .
# 提交暂存区中的内容到本地仓库 -m 提交信息:
git commit -m “消息内容”
# 拉取远程仓库:
git pull [remoteName] [localBranchName]
# 推送远程仓库:
git push [remoteName] [localBranchName]
# 查看指定文件状态:
git status [filename]
# 查看所有文件状态:
git status
# 列出所有本地分支:
git branch
# 列出所有远程分支:
git branch -r
# 列出所有分支:
git branch -a
# 新建一个分支,但依然停留在当前分支:
git branch [branch-name]
# 切换到该分支:
git checkout [branch]
# 新建一个分支,并切换到该分支:
git checkout -b [branch]
# 合并指定分支到当前分支:
git merge [branch]
# 删除分支:
git branch -d [branch-name]
# 删除远程分支:
git push origin --delete [branch-name]/git branch -dr [remote/branch]
# 更新缓存(远端仓库):
git fetch origin
# 将 origin/HEAD 指向远程仓库的默认分支:
git remote set-head origin -a
# 将 origin/HEAD 指向 (origin/dev):
git remote set-head origin dev
# 删除 origin/HEAD:
git remote set-head origin -d
# 提交本地feature分支作为远程的develop分支:
git push origin feature: develop
# tag操作
git tag -a v20240725-2
git push origin v20240725-2
7-2. 修改现有仓库的git 地址

更多推荐
所有评论(0)