1、为什么要创建分支?
现在让我们来看一个简单的分支与合并的例子,实际工作中大体也会用到这样的工作流程:
- 开发某个网站。
- 为实现某个新的需求,创建一个分支。
- 在这个分支上开展工作。
假设此时,你突然接到一个电话说有个很严重的问题需要紧急修补,那么可以按照下面的方式处理:
- 返回到原先已经发布到生产服务器上的分支。
- 为这次紧急修补建立一个新分支,并在其中修复问题。
- 通过测试后,回到生产服务器所在的分支,将修补分支合并进来,然后再推送到生产服务器上。
- 切换到之前实现新需求的分支,继续工作。
这就是分支的作用, 分支就是科幻电影里面的平行宇宙,
你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。
如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!

2、怎样创建分支
随意创建分支可不可以?,当然是可以啦!!但是不建议,这样对自己对团队其他成员阅读时很不友好。现在说说GIT分支命名规范:
(1)master 主分支:
master 为主分支,也是用于部署生产环境的分支,确保 master 分支稳定性;master 分支一般由 develop 以及 hotfix 分支合并,任何时间都不能直接修改代码。
(2)develop 开发分支:
develop 为开发分支,始终保持最新完成以及 bug 修复后的代码;一般开发的新功能时,feature 分支都是基于 develop 分支下创建的。
(3)feature 新功能分支:
开发新功能时,以 develop 为基础创建 feature 分支;分支命名以 feature/ 开头的为特性分支,命名规则 feature/user_module、 feature/cart_module。
(4)release 预上线分支:
release 为预上线分支,发布提测阶段,会 release 分支代码为基准提测。
当有一组 feature 开发完成,首先会合并到 develop 分支,进入提测时,会创建 release 分支。如果测试过程中若存在 bug 需要修复,则直接由开发者在 release 分支修复并提交。当测试完成之后,合并 release 分支到 master 和 develop 分支,此时 master 为最新代码,用作上线。
(5)hotfix 紧急修复分支:
分支命名以 hotfix/ 开头的为修复分支,它的命名规则与 feature 分支类似;线上出现紧急问题时,需要及时修复,以 master 分支为基线,创建 hotfix 分支,修复完成后,需要合并到 master 分支和 develop 分支。
3、创建分支示例
(1)添加新功能的分支示例:
(develop/0.0.1) $ git checkout -b feature/task_modlue #基于develop/0.0.1分支创建新功能开发分支,并切换到新分支
#增加新功能任务模块
(feature/task_modlue) $ git add Task.html #任务模块文件Task.html添加到暂存区
(feature/task_modlue) $ git commit -m "新增任务模块" # 将所有修改提交到版本库
(feature/task_modlue) $ git checkout develop/0.0.1 #切换版本库到develop/0.0.1
(develop/0.0.1)$ git merge feature/task_modlue --no-ff # 把feature/task_modlue分支合并到develop/0.0.1
(2)修复紧急 bug 分支示例
现在,你终于接到了一个紧急任务:视频无法播放,今天必须修复提交上线。
于是准备开发
基于master创建hotfix/video_playback分支
(master) $ git checkout -b hotfix/video_playback
10分钟后修复完成,然后提交:
(hotfix/video_playback)$ git add test.txt
(hotfix/video_playback)$ git status
(hotfix/video_playback)$ git commit -m "修复视频无法播放"
现在,hotfix/video_playback分支的工作完成,我们就可以切换回master分支:
(hotfix/video_playback)$ git checkout master
现在,我们把hotfix/video_playback分支的工作成果合并到master分支上:
(master)$ git merge hotfix/video_playback
切换回develop/0.0.1分支,并将hotfix/video_playback分支合并到develop/0.0.1分支上
(master)$ git checkout develop/0.0.1
(develop/0.0.1)$ git merge hotfix/video_playback
(3)测试环境合并示例:
(release)$: git merge develop/0.0.1 --no-ff
# 把develop/0.0.1分支合并到release,然后在测试环境拉取并测试
(4)线上生产环境操作示例:
(master)$: git merge release --no-ff
# 把release测试好的代码合并到master,运维人员操作
(master)$: git tag -a v0.1 -m '部署包版本名' #给版本命名,打Tag

439

被折叠的 条评论
为什么被折叠?



