▓▓▓▓▓▓ 大致介绍

  几乎所有的版本控制系统都会支持分支操作,分支可以让你在不影响开发主线的情况下,随心所欲的实现你的想法,但是在大多数的版本控制系统中,这个过程的效率是非常低的。就比如我在没有学习Git之前,想实现我的一个小想法,但是又害怕影响已完成的工作,只有ctrl+c、ctrl+v,但是在Git中,甚是方便了许多。

  这篇博客主要讲以下几部分:

    ◆ 创建分支

    ◆ 合并分支

    ◆ 删除分支

▓▓▓▓▓▓ 创建分支

  在之前的学习中,都只有一个分支即 master分支 这是Git中主分支的默认名。在Git学习之路(4)- 撤销操作、删除文件和恢复文件 中提到了HEAD,表示当前的版本,在以前的学习中master和HEAD是这种关系:

  Git使master指向最新的提交,然后使HEAD指向master,就像C语言中的指针一样。

  创建一个分支:

    git branch 分支名 

  

  查看分支:

    git branch 

  切换到某个分支:

    git checkout 分支名

  创建并切换到某个分支:

    git checkout -b 分支名

  例如:

  首先用 git branch 查看了一下分支,发现就只有 master 一个分支,然后创建了 branch1 分支。查看分支,可以发现前面有*符号的分支,为当前分支。切换到branch1

  此时,用图来表示:

▓▓▓▓▓▓ 合并分支

  在分支上改好文件后,我们最后要把它合并到主分支上。

  

    git merge 分支名

  查看以和当前分支合并过的分支:

    git branch --merge

  查看未于当前分支合并过的分支:

    git branch --no-merge

  例如:

  首先查看了分支,可以看到一共有三个分支:branch1、branch2、master。然后查看和当前分支master合并过的分支,显示无。查看没有和master合并过的分支,有两个即:branch1、branch2。将branch1和master合并,继续查看和master合并过的分支和未合并过的分支

  此时,用图来表示:

  但是有时候,分支合并时并不是一帆风顺,例如两个分支如果对同一文件的用意部分进行修改,那么在合并时就会出现问题:

  如图:

  这时,合并分支时产生了冲突,Git会让你自己选择要保留哪个,在你的代码中会出现类似这样的提示信息:

  选择你就要保留的代码,删除不要的,在提交就可以了

▓▓▓▓▓▓ 删除分支

  当我们要删除一个分支时,要分为两种情况:

  删除与当前分支合并过的分支:

    git branch -d 分支名

  删除与当前分支没有合并过的分支:

    git branch -D 分支名

  例如:

  首先查看了与当前分支合并和没有合并过的分支,发现用-d删除未合并过的分支时,出现了错误,改用-D则成功删除

参考资料: 

      廖雪峰的官方网站-Git教程

      CODE帮助文档-Progit中文版

  

Git学习之路(6)- 分支操作的更多相关文章

  1. Git学习之路(5)- 同步到远程仓库及多人协作问题

    ▓▓▓▓▓▓ 大致介绍 我们写好文件后添加到版本库,但是这样还没有做完,我们还需要将它同步到GitHub的远程仓库上,这里就以我们刚开始的drag项目为例,我们在Git学习之路(2)-安装GIt和创建 ...

  2. Git 学习(六)分支管理

    Git 学习(六)分支管理 几乎每一种版本控制系统都支持分支.使用分支意味着你可以从开发主线上分离开来,然后不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录 ...

  3. Git学习之路(2)-安装GIt和创建版本库

    ▓▓▓▓▓▓ 大致介绍 前面一片博客介绍了Git到底是什么东西,如果有不明白的可以移步 Git学习之路(1)-Git简介 ,这篇博客主要讲解在Windows上安装Git和创建一个版本库 ▓▓▓▓▓▓ ...

  4. git学习(5)分支管理(续)

    git学习(5)分支管理(续) 1.解决冲突 冲突的产生 如我们在新建分支和原来master分支上对同一文件做了修改并提交,在合并分支的时候就会遇到冲突 比如我新建了分支myBranch,在这个分支上 ...

  5. GIT学习之路第三天 文件操作

    本文参考廖雪峰老师的博客进行总结,完整学习请转廖雪峰博客 一.版本回退 1.git log提交日志 在git中可以通过个git log 命令显示从最近到最远的提交日志. $ git log commi ...

  6. Git学习之路(4)- 撤销操作、删除文件和恢复文件

    ▓▓▓▓▓▓ 大致介绍 经过前面的学习(小白学Git)已经建立了版本库,并上传了文件,这次来学习对这些文件进行基本的操作,即: ◆ 撤销操作 ◆ 删除文件 ◆ 恢复文件 我在此之前,已经将三个文件提交 ...

  7. GIT学习之路第五天 分支管理

    本文参考廖雪峰老师的博客进行总结,完整学习请转廖雪峰博客 5.1创建与合并分支 首先创建dev分支,然后切换dev分支 $git checkout -b dev(包含创建并切换) 等价于<-&g ...

  8. git 学习笔记 —— 获取远端分支并修改后提交至远端仓库

    笔者最近进行开发过程中,所有参与者的代码需要通过 git 上传到远端仓库中,不同的模块对应不同的 git 分支,不同模块的数据需要从远端仓库中获取.这里记录下笔者从远端仓库中获取分支数据,进行修改,最 ...

  9. GIT学习记录3(分支管理)

    学习参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 本编随笔只是自己对 ...

随机推荐

  1. UIButton常用属性小结(编辑中。。。)

    Button的功能很黄很暴力,即能显示文字,又能显示图片,还能随时调整内部图片和文字的位置,用的地方很多. (1)按钮常用的四种状态: normal(普通状态) 默认情况(Default) 对应的枚举 ...

  2. python threading模块中对于信号的抓取

    最近的物联网智能网关(树莓派)项目中遇到这样一个问题:要从多个底层串口读取发来的数据,并且做出相应的处理,对于每个串口的数据的读取我能想到的可以采用两种方式: 一种是采用轮询串口的方式,例如每3s向每 ...

  3. C语言-break和continue

    先看以下switch语句的程序:     scanf("%d",&score);     if (score>=0 && score<=100) ...

  4. web 前端routine

    HTML:check CSS : check Javascript: struggling 框架:—— SQL:—— http://www.cnblogs.com/kzang/tag/SQL/ web ...

  5. linux与windows回车换行符的区别

    转自:http://www.cnblogs.com/dartagnan/archive/2010/12/14/2003499.html “回车”(carriage return)VS  “换行”(li ...

  6. html 转义

    function escapeHTML(n) { var t = document.createElement("div"), i = document.createTextNod ...

  7. 2.1. 托管对象模型是什么(Core Data 应用程序实践指南)

    托管对象模型是一种数据结构.在这里,数据结构.纲要.对象图.数据模型.托管对象模型这些术语是一个意思.它们是对同一个东西不同场景的描述.比如,对Core Data 而言是托管对象模型,对设计器来说是对 ...

  8. easyui datagrid 列排序

    1.js设置 //=====================数据加载===================== /** * grid加载数据 * * @returns */ function grid ...

  9. jQuery原型技术分解

    jQuery原型技术分解 起源----原型继承 用户过javascript的都会明白,在javascript脚本中到处都是 函数,函数可以归置代码段,把相对独立的功能封闭在一个函数包中.函数也可以实现 ...

  10. ejb ql 返回object

    String sqlStr="select t.car_kind,count(t) from table1 t where t.jb_date='"+jb_date+"' ...