Git 分布式版本控制系统(四) ---分支管理
2015-06-21 14:02
393 查看
分支管理
master分支
在版本回退中,已经知道,每次提交,Git都将他们串成一条时间线,这条时间线就是一个分支。Git中有条主分区叫做master,当创建版本库的时候Git默认创建。HEAD严格讲不是指向提交,而是指向master,master才是指向提交的,因此HEAD指向当前分支,如图4.1所示,表示master和HEAD指针所指向的分支。图4.1
一开始,master是一条线,Git用master指向最新提交,然后用 HEAD指向master,就能确定当前分支。
每次提交master都向前移动一步,随着提交过程中,master分支会越来越长。
临时分支
1.新建临时分支当我们创建新的分支,例如dev时,Git新建了一个指针叫做dev,指向master的提交,并且将HEAD指针指向dev,表示当前分支在dev上,工作区没有任何变化。(HEAD总是指向当前分支)。如图4.2所示,表示新建分支dev,并且指向当前分支。
图4.2
新建分支命令:
<span style="font-size:14px;">$ git checkout -b dev</span>-b 表示新建并且切换到dev分支
从现在起,一切所做的工作都是在dev分支上进行,master分支是没有更新的,以后的修改和提交都是对dev分支操作,提交一次,dev指针向前移动一次,master指针不动。如图4.3所示,在dev分支上提交,指针向前移动。
图4.3
2.如何将dev合并到master分支上?
首先切回到master分支上
用git branch命令查看当前分支,打印信息如下所示。
<span style="font-size:14px;"> *dev master</span>
该命令会列出所有分支,*号表示当前分支。
使用$git checkout 分支名切换分支。如下所示,切换到master分支。
<span style="font-size:14px;">$ git checkout master</span>
当切到master分支后会发现,之前所做的工作不见了,因为都是在dev分支上所做的,而在master分支上并没与提交,因此可以将dev的提交合并(merge)到master分支上。
使用$git merge 分支名 ,将该分支合并到当前分支。
<span style="font-size:14px;">$ git merge dev</span>
合并完成,需要删除临时分支dev,使用$git branch -d 分支名命令删除。
<span style="font-size:14px;">$ git branch -d dev</span>
建议:
Git建议多是用临时分支来完成整个项目的开发,这和直接在master上的工作效果是一样的,但是更安全。
小结:
查看分支:git branch 创建分支:git branch <name> 切换分支:git checkout <name> 创建+切换分支:git checkout -b <name> 合并某分支到当前分支:git merge <name> 删除分支:git branch -d <name>
相关文章推荐
- Android Java 自定义异常
- 毕业季致青春
- 补发《超级迷宫》站立会议十
- 学习的目的和方法论(实战主义)
- ASP.NET MVC5--为数据库新增字段(涉及数据库迁移技术)
- alex教学视频登陆接口
- bottle框架学习(六)之错误与重定向
- JAVA 反射
- 权限表的设计
- 第15周项目2-二进制文件浏览器
- 平面最近点对问题(分治)
- cocos code ide中横竖屏切换
- 第15周项目1-用二进制文件处理学生成绩
- 树状数组(二维)例题 HDU2642——Stars
- 会做的,不如会说的
- Integer to Roman
- Tutorial 6:Translation Transformation
- 接口 Map<K,V>
- 第14周项目4-处理C++源代码的程序
- 获取sql执行时间