版本控制git(三)-git分支
通过本系列的上两篇文章(查看系列文章:http://www.cnblogs.com/jerehedu/p/4607599.html#bbkz),我们已经知道了如何使用Git完成对文件的版本控制。本次我们继续学习如何通过Git进行分支管理。
首先,我们要弄明白什么是分支。通过git log 命令我们可以查看版本库的提交日志,如图:

那么这些commit之间存在什么关系呢?实际上每次commit的时候,提交对象都会保存一个指向上次一commit版本的指针,经过多次提交之后,git通过这个指针将多个提交版本串成了一个串,如下图:

分支实际上就是从某个提交版本向前的的历史,到目前为止Git中只有一个分支,这个分支我们称为主分支,默认名称为master。每提交一次,master就会向前移动一步,指向最新的提交版本。
创建新的分支
那么在Git中,我们如何创建新的分支呢,非常简单可以用使用Git命令:git branch 分支名字。

这样我们就创建了一个名为:jredu_branch_01的分支,注意此分支是建立在当前的commit版本对象上的,如下图所示:

现在我们有了两个分支,那么Git如何知道当前的工作分支呢?其实在Git中保存着一个名为HEAD的特别指针,这个指针指向了当前的工作分支。

切换分支
使用“git branch 分支名字”只是创建了一个分支,并不会切换到新建的分支中,如果想切换分支,我们应该使用命令:git checkout 分支名字

切换后,HEAD就指向了Jredu_branch_01,示意图如下:

我们在jredu_branch_01分支下进行工作,通过命令”git add”和”git commit”添加新的文件并提交后,新的分支示意图如下:

从示意图可以看出新分支jredu_branch_01向前移动了一步,而主分支master还停留在原来的版本上。
查看分支
在Git中存在多个分支,如何查看并知道当前工作分支呢?查看命令:git branch

可以看到共有两个分支master和jredu_branch_01,“*”表明了当前的工作分支。
合并分支
有了分支之后,我们就可以方便的进行协作开发,这样就可以能会产生多个分支,那么如何进行分支合并呢?Git提供的合并命令:git merge 被合并的分支
具体步骤,首先返回master分支,其次运行合并命令:

这样我们就将jredu_branch_01分支合并到了master分支之上。
删除分支
Jredu_branch_01分支被合并到master之后,就没有用处了,这里我们可以选择删除它,Git中删除分支的命令:git branch –d 要删除的分支

合并冲突
在合并分支的过程中,如果遇到不同的分支对相同的文件都做了修改,那么合并就不会那么顺利了,经常会看到如下的信息:

这个时候git虽然做了合并,但是没有提交,需要解决冲突之后才能提交。通过git status命令我们可以看到冲突的文件

打开冲突的文件,我们看到具体的文件内容

文件中使用“=========”分割不同的分支文件修改中冲突的部分,“<<<<<<<<HEAD”部分是master分支修改的内容,”>>>>>>>>>>>jredu_branch_01”部分是分支jredu_branch_01分支修改的内容。
修改文件后,使用git add命令,并使用git status查看冲突 状态,并最终提交。

这样就解决了冲突的问题,完成了最终的合并。
总结一下Git分支的相关命令
创建分支:git branch 分支名字
切换分支:git checkout 分支名字
查看分支:git branch
合并分支:git merge 要合并的分支
删除分支:git branch –d 要删除分支
疑问咨询或技术交流,请加入官方QQ群:
(452379712)
出处:http://www.cnblogs.com/jerehedu/
本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版本控制git(三)-git分支的更多相关文章
- Git(三):Git 使用规范流程
转:http://www.ruanyifeng.com/blog/2015/08/git-use-process.html 团队开发中,遵循一个合理.清晰的Git使用流程,是非常重要的. 否则,每个人 ...
- 使用VSTS的Git进行版本控制(三)——评审历史记录
使用VSTS的Git进行版本控制(三)--评审历史记录 Git使用存储在每个提交中的父引用信息来管理开发的完整历史记录.评审该提交历史记录,能够找出文件更改的时间,并确定代码版本之间的差异. Git使 ...
- 版本控制git之二 分支 切换分支 创建分支 合并 删除
版本控制git之二 分支 有人把 Git 的分支模型称为它的`‘必杀技特性’',也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出. 为何 Git 的分支模型如此出众呢? Git 处 ...
- git——学习笔记(三)分支管理
一.创建.合并分支 每次提交,git都往后走一格,串成一跳时间线,head指向的是分支,分支指向提交.master是主分支,dev是另一条分支,分支就像指针一样,合并.删除分支时,修改的都是指针,工作 ...
- git之合并分支(git merge)------(三)
最近几天写小demo,总是自己拉取他人的代码,然后创建分支,在自己的分支上进行修改,然后提交到自己的分支,具体的这一步,我就不多讲了,因为在我的博客“工作中常用的Git操作”中有详细的介绍,今天主要讲 ...
- 版本控制git之二-分支
有人把 Git 的分支模型称为它的`‘必杀技特性’',也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出. 为何 Git 的分支模型如此出众呢? Git 处理分支的方式可谓是难以置信的轻量, ...
- Git学习教程三之分支管理
实战流程: 1:代码库克隆一份至本地 2:新分支操作 2.1 在需要的文件中创建并指向新的分支方便写代码 git checkout -b <name> 2 ...
- [Git01]Pro Git 第三章 分支 读书笔记
[git]分支 Git 的分支模型称为“必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来. Git 有何特别之处呢?Git 的分支可谓是难以置信的轻量级,它的新建操作几乎可以在 ...
- Git 深度学习填坑之旅三(分支branch、远程操作)
0x01 分支branch依旧借用大表哥(@表元素)的图 很多时候,我们需要建立另一条分支来进行项目的独立开发,当完成后再跟主流回合进行合并这个时候就要启用分支branch功能 git branch ...
随机推荐
- 性能测试十九:jmeter参数优化+排错
一:参数优化 1,控制台取样间隔的设置,在jmeter/bin/jmeter.properties文件中修改 summariser.interval=10,默认为30s,最低可修改为6s 2,Jvm参 ...
- Lucene.Net简单例子-01
前面已经简单介绍了Lucene.Net,下面来看一个实际的例子 1.1 引用必要的bll文件.这里不再介绍(Lucene.Net PanGu PanGu.HightLight PanGu.Luc ...
- Angular2学习(一)
Angular2的新特性: angular2的核心: 模块.组件.元数据.模板.数据绑定.服务.指令.依赖注入.模块. 组件:层层嵌套,形成组件树.父子组件沟通有输入和输出接口 组件包含JavaScr ...
- GDIPlus非典型误用一例
// ** 初始化GDI+ Gdiplus::GdiplusStartupInput gdiplusStartupInput; // ** 该成员变量用来保存GDI+被初始化后在应用程序中的GDI+标 ...
- c3p0和QueryRunner的结合使用,让开发更加简便
1:DBUtils中的QueryRunner的使用: 1.1:QueryRunner中提供了对SQL语句操作的api: 1.2:主要有三个方法: 1.2.1:query():用于执行select(查询 ...
- mongo 复制集命令
1.登录primary2.use admin >rs.add("new_node:port") 或 rs.add({"_id":4,"host& ...
- BZOJ1180 [CROATIAN2009]OTOCI LCT
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1180 本题和BZOJ2843一样. BZOJ2843 极地旅行社 LCT 题意概括 有n座岛 每座 ...
- python json数据处理
1. python 转 json import json data={ "name":"haha", "age" : 1,"lis ...
- jquery $与jQuery
jquery的兼容 ie8 <script type="text/javascript" src="<%=path%>/js/jquery-3.1.1. ...
- python的random模块(生成验证码)
python的random模块(生成验证码) random模块常用方法 random.random() #生成0到1之间的随机数,没有参数,float类型 random.randint(1, 3) # ...