分支
- 作用:
- 研究新的功能或者攻关难题
- 解决线上bug
- 特点:
- 分支使每个员工开发期的代码互不干扰
- 项目开发中公用分支包括master、dev
- 分支master是默认分支,用于发布,当需要发布时将dev分支合并到master分支
- 分支dev是用于开发的分支,开发完阶段性的代码后,需要合并到master分支
- 项目中每个项目成员都可以单独建立分支用于的代码开发,实现不交叉
模拟经理分支操作
对比:操作分支前的代码
1.进入到经理的本地仓库
test007
cd Desktop/manager/test007/
2.查看当前分支
git branch
没有创建其他分支时,只有
master
分支
3.经理创建并切换到dev分支
git checkout -b dev
4.经理在dev分支编辑代码
5.管理dev分支源代码:
add
、commit
、push
6.dev分支合并到master分支
- 提示:只有当dev分支合并到master分支成功,张三才能获取到
num4
6.1 先切换到master分支
git checkout master
6.2 dev分支合并到master分支
git merge dev
6.3 经理推送合并分支操作到远程仓库
合并分支默认在本地完成,合并后直接推送即可
git push
- 提示:只有当dev分支合并到master分支成功,张三才能获取到
7.张三同步经理合并后的
num4
只有当张三同步代码成功,分支合并才算成功
cd Desktop/zhangsan/test007/ git pull
BUG分支:重中之重
- 有时当我们正在开发新功能时,出现了线上BUG。此时,必须暂停正在开发的功能,新建临时分支先解决线上BUG。
以下代码为模拟张三解决线上BUG:v1.0版本出错
1.张三切换到dev分支
2.张三在dev分支上编辑代码
3.线上
v1.0
版本突然发现bug- 张三暂停手中的工作,解决线上
v1.0
版本bug 记录未提交的修改:保留现场
git stash
- 张三暂停手中的工作,解决线上
4.张三解决线上
v1.0
版本bug4.1 张三切换到
master
分支4.2 新建
fixbug
分支,并下载v1.0
版本的代码到fixbug
分支git checkout -b fixbug v1.0
4.3 修复线上
v1.0
版本bug4.4 管理
fixbug
分支代码add
、commit
、push
4.5 合并
fixbug
分支到master
分支,并推送到远程仓库# 切换到master分支 git checkout master # 合并fixbug分支到master分支 git merge fixbug # 推送合并到远程仓库 git push
4.6 经理打标签
v1.1
,发布v1.1
版本git tag -a v1.1 -m 'version 1.1' git push origin v1.1
4.7 张三恢复dev分支未提交的修改
- 恢复到发现线上bug的那个节点
v2.0开发中...
git stash list git stash pop
4.8 张三将
fixbug
分支合并到dev
分支- 当把未提交的修改提交后,即可将
fixbug
合并到dev
保证张三现在开发的版本不会有
v1.0
版本遗留问题# 切换到dev分支 git checkout dev # 合并fixbug分支到dev分支 git merge fixbug # 推送 git push
- 当把未提交的修改提交后,即可将
4.9 张三将
dev
分支合并到master
分支,并推送到目前为止:
v1.0
版本bug解决了,v2.0
也开发完成了
合并分支禁用Fast Forward
模式
- 在合并分支时,默认采用
Fast Forward
模式 - 该模式没有分支合并的版本记录
如果需要在合并分支时记录版本需要禁用
Fast Forward
模式git merge --no-ff -m '合并描述' 分支名