▓▓▓▓▓▓ 大致介绍

  几乎所有的版本控制系统都会支持分支操作,分支可以让你在不影响开发主线的情况下,随心所欲的实现你的想法,但是在大多数的版本控制系统中,这个过程的效率是非常低的。就比如我在没有学习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. Spring MVC之Action输入参数

    第一部分:Action输入参数Spring MVC 通过@RequestMapping注解映射请求,最终的真正执行代码为处理器方法,即@RequestMapping注解的方法.Spring MVC方法 ...

  2. java实现——035第一个只出现一次的字符

    import java.util.Hashtable; public class T035 { public static void main(String[] args) { FirstNotRep ...

  3. Objective-C中的面向对象编程

    1.过程式编程实例,画出Shape数组中的图形: // // main.m // hello-obj // // Created by zhouyang on 16/4/4. // Copyright ...

  4. [osgEarth]osgEarth

    参考:http://bbs.osgchina.org/forum.php?mod=viewthread&tid=5484&extra=page%3D1&_dsign=70b15 ...

  5. 避免Node.js中回调地狱

    为了解决这个阻塞问题,JavaScript严重依赖于回调,这是在长时间运行的进程(IO,定时器等)完成后运行的函数,因此允许代码执行经过长时间运行的任务. downloadFile('example. ...

  6. 用JS添加文本框案例代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. Java经典案例之-“统计英文字母、空格、数字和其它字符的个数”

    /** * 描述:输入一行字符串,并且统计出其中英文字母.空格.数字和其它字符的个数. * 分析:利用for语句,条件为输入的字符不为 '\n ' * 作者:徐守威 */ package com.xu ...

  8. Discuz经典函数注释之authcode

    Discuz函数中最经典的函数是authcode函数,因为supesite,UCenterHome,UCenter,Discuz X都使用了这个函数进行加密啊传输串与cookie 今天为大家带来aut ...

  9. js架构设计模式——你对MVC、MVP、MVVM 三种组合模式分别有什么样的理解?

    你对MVC.MVP.MVVM 三种组合模式分别有什么样的理解? MVC(Model-View-Controller)MVP(Model-View-Presenter)MVVM(Model-View-V ...

  10. 响应的系统设置的事件——Configuration类简介

    Configuration类专门用于描述手机设备上的配置信息,这些配置信息既包括用户特定的配置项,也包括系统的动态设置配置. 程序可调用Activity的如下方法来获取系统的Configuration ...