git_tutorials/Lab3/lab3.md

60 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 分支管理
前面提交、推送操作都是在“master”分支进行的。针对一个不断迭代的复杂项目如果全部都在“master”上操作版本的结构会乱其他人看不懂哪个提交是稳定的是生产下发版本哪个提交是尚在开发版本。
针对这一问题下面介绍Git flow分支模型大家不一定要严格套这个模型。
## Git Flow
模型的分支如下:
- master
- develop
- feature/xxx
- hotfix/xxx
- release/xxx
它们的流程图如下:
![](./git_flow.png)
## master
- master主分支代码库应该有一个、且仅有一个主分支主分支存放最稳定的程序版本
- 所有用于正式生产下发的版本都应该在master分支上发布
- 不能直接在master分支上修改提交只能从其它分支合并
- 所有在master上的提交应该标记tag
## develop
- develop分支是主开发分支
- 用于合并来自feature分支的程序
- 从该分支创建release分支
- 接收来自release和hotfix分支的优化
## feature
- 用于新功能的开发
- 从develop分支签出
- 开发完后合并到develop
## hotfix
- 用于紧急修复现场出现的bug
- 从master签出
- 完成修复后要双向合并到master和develop
## release
- 用于准备版本发布
- 从develop分支签出
- 等测试组测试通过双向合并到master和develop
## 其他说明
远程仓库应该只存在两个分支一个是master分支存放生产环境版本这个分支的代码总是可靠可用的另一个是develop分支这个分支用于日常开发。
hotfix分支、feature分支和release分支都在本地原则上不能推送到远程仓库。这三种分支都属于临时性需要使用完以后应该删除。
develop分支下允许有多个feature分支且尽量避免冲突允许在有feature处在开发中的情况下从develop分支拉取到release分支。
# 分支操作
## 创建分支
在工程目录下右键菜单选择“TortoiseGit”点击“创建分支”。
![](./git_create_fork.png)
输入分支名称。“切换到新分支”可选,后面可以手动切换。点击“确认”新分支便创建成功。
## 切换分支
想要在某个分支上做修改提交,首先要切换到该分支。
在工程目录下右键菜单选择“TortoiseGit”点击“切换/检出”。
![](./git_checkout.png)
选择分支,点击确认。
## 创建标签
master分支提交后要加一个标签用来表示版本号。
在工程目录下右键菜单选择“TortoiseGit”点击“创建标签”。
输入标签名称,选择分支即可。
![](./git_tag.png)
## 分支推送
当某个分支提交的差不多了,就可以推送了。
之前推送的是master分支现在可以选择本地的其他分支。
![](./git_fork_push.png)
值得注意的是“包括标签”选项按照模型master分支需要标记Tag版本号master分支推送时勾选该选项可以将Tag同步到服务器。