▓▓▓▓▓▓ 大致介绍

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

    UDP网络程序设计 1. UDP网络编程模型程序初始化 1.1服务器使用的函数 创建socket----->socket 绑定地址-------->bind 接受数据--------> ...

  2. FTP-使用记录

    1.磁盘配额不够用 Could not write to transfer socket: ECONNABORTED - 连接中止 452-Maximum disk quota limited to ...

  3. ios开发中全局变量设置和调用方法

    ios开发中,全局变量设置和调用方法如下:在AppDelegate.h文件中设置全局变量:@interface ***AppDelegate{NSString *myName;}@property ( ...

  4. onethink部署时后台登陆的问题

    情况:本地开发后,上传到服务器时,无法登陆后台. 原因:用户的读取数据库的配置与应用的配置 分别在2个地方.而一般我们只记得修改一处配置. 解决:找到application/user/conf/con ...

  5. CodeForces 755C PolandBall and Forest (并查集)

    题意:给定每一点离他最远的点,问是这个森林里有多少棵树. 析:并查集,最后统计不同根结点的数目即可. 代码如下: #pragma comment(linker, "/STACK:102400 ...

  6. beforeunload

    <!DOCTYPE html> <html> <head> <title>BeforeUnload Event Example</title> ...

  7. KMP算法深入解析

    本文主要介绍KMP算法原理.KMP算法是一种高效的字符串匹配算法,通过对源串进行一次遍历即可完成对字符串的匹配. 1.基础知识的铺垫 字符串T的前k(0 =< k <=tlen)个连续的字 ...

  8. arcgis 瓦片图加载规则(转载)

    arcgis 瓦片图加载规则 最近需要做地图离线的功能,要能下载指定区域的瓦片图,我们都知道如何加载谷歌和天地图的加载规则,但是网上貌似没有找到如何加载arcgis自己发布的瓦片图规则,好不容易找到一 ...

  9. 得到css style

    //根据ID返回dom元素 2 var $ = function(id){return document.getElementById(id);} 3 //返回dom元素的当前某css值 4 var ...

  10. Java中泛型数组的使用

    package com.srie.testjava; import java.util.ArrayList; import java.util.List; public class TestClass ...