在一开始学习 git 的时候我们经常提到一个东西---- master。那么 master 到底是什么呢?其实它就是一个分支,一般这个分支就是主分支。而在一般 git 中都有一个指向当前你工作的分支 HEAD。

  对于一开始的时候,master 分支是一条线的。对于我们每次提交的时候,git 分支都会向前移动一次,因此随着我们的提交越来越多,master 分支也越来越长。当我们创建一个新的分支(hotFix)的时候,git 会为我们创建一个新的指针(hotFix),而我们可以把当前工作的地方指向当前分支(hotFix),也就是说将 HEAD 指向 hotFix,这时候就表示当前分支就是 hotFix。因此在我们进行分支切换的时候工作区的文件是会发生改变的。

  这时候我们在 hotFix 做了修改那么 hotFix 指针会向前走一步,而对于 master 指针是不会改变的。如下所示:

  这时候我们在 hotFix 上完成工作了,需要将我们所做的更改合并到 master 分支上,合并完后将 HEAD 指针指向 master 分支,然后再将 hotFix 分支删除掉,删除之后就只剩下一个 master 分支。

  说了这么多那么怎么创建分支呢?

创建分支

  创建分支我们可以使用 git checkout -d <branchName>,其实对于这条命令是做了以下两步:

--创建分支
git branch hotFix
--切换分支
git checkout hotFix

  当然我们也可以使用 git branch 查看当前的分支

 -- 对于当前分支前面会有一个 * 号
$ git branch
* dev
master

合并分支

  可以使用 git merge 将指定分支合并到当前的分支。合并之后我们会发现在 hotFix 分支做的修改被添加到了 master 分支。

删除分支

  在我们合并完之后,就可以将 hotFix 分支删除掉。这时候可以使用 git branch -d hotFix。删除之后就会发现只剩下 master 分支了。

  我们对以上所讲的东西进行汇总下:

  1. 查看分支:git branch
  2. 创建分支:git branch <name>
  3. 切换分支:git checkout <name>
  4. 创建+切换分支:git checkout -b <name>
  5. 合并某分支到当前分支:git merge <name>
  6. 删除分支:git branch -d <name>

git 学习之分支的更多相关文章

  1. 四、git学习之——分支管理、解决冲突

    分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇宙合并 ...

  2. git 学习(2) ----- 分支

    当我们进行程序开发的过程中,有时会产生一个新的想法,然后就想马上试验,那我们怎么办? 如果我们继续在现有的基础上进行开发,但最后想法不成功,我们还要进行版本回退?如果我们的新想法,需要很长时间才能实现 ...

  3. git学习笔记 --分支管理策略

    通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的comm ...

  4. 五、git学习之——分支管理策略、Bug分支、feature分支、多人协作

    一.分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生 ...

  5. mzy git学习,分支以及分支合并(四)

    git 鼓励大量使用分支:最后进行master和分支之间的合并 git branch git branch 查看当前有多少分支,并且将当前在使用的分支用*标注出来. [一定要注意git的分支有从属概念 ...

  6. git学习笔记 ---分支管理

    分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇宙合并 ...

  7. Git学习笔记——分支

    分支用法很多,比如bug修复,协作管理,这里只简单介绍我在工作中用到的协作模式. 场景:我自己开发独立功能,在本地为自己创建一个分支就叫localbranch吧,甭管master到哪了,我只管开发我的 ...

  8. git学习--远程分支删除

    查看远程分支 git branch -r  使用下面两条命令来删除远程分支 git branch -r -d origin/branch-name git push origin :branch-na ...

  9. mzy git学习,分支冲突,以及冲突解决(五)

    冲突解决: 先尝试制造冲突: 首先我:git checkout -b mzy 创建一个mzy的分支 然后在其中修改readme.txt文件,随便加上一点东西. vim readme.txt   wri ...

随机推荐

  1. java和json互转

    在网页中想后台传递多个数据时,有时数据还是多个动态列表,数据很复杂时,JavaScript程序员喜欢把他们作为json串进行处理,后台收到后需要对json字符串进行解析,幸好有JSON-lib,这个J ...

  2. 如何搭建eclipse+maven环境

    Maven这个个项目管理和构建自动化工具,越来越多的开发人员使用它来管理项目中的jar包.本文仅对Eclipse中如何安装.配置和使用Maven进行了介绍.完全step by step. 如果觉得本文 ...

  3. 启动hive命令时指定参数或自定义参数

    启动hive命令时指定参数或自定义参数 在hive启动命令中指定一个参数 hive --hiveconf hive.job.submit.username=fuxin.zhao -e "se ...

  4. C#——Winform 无边框随意拖动【转载】

    本篇技术内容转载自:http://www.cnblogs.com/ap0606122/archive/2012/10/23/2734964.html using System; using Syste ...

  5. django drf 改变retrive的pk查询字段

    lookup_filed可以改变retrive查询时默认以pk查询的逻辑 from django.shortcuts import render from rest_framework import ...

  6. sharepoint 2010 powershell

    可参看云总的博客:http://blog.csdn.net/yun_liang1028/article/details/6419729

  7. 2、Orcal数据库创建第一个(管理员)连接

    (注意这里第一个创建的是管理员连接也是我们的总连接,之后我们所有的其他新用户都要创建在它里面,所以它的一些属性我们在填写以及设置时需要注意!!!) 1.确认Orcal服务开启: 2.创建连接: 打开我 ...

  8. ubuntu 关闭和开启防火墙

    1.关闭ubuntu的防火墙 ufw disable 2开启防火墙 ufw enable 3.卸载了iptables apt-get remove iptables 4.关闭ubuntu中的防火墙的其 ...

  9. 快速排序 JAVA实现

    快速排序 每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边.快速排序是不稳定的,时间复杂度(平均):nlogn public class ...

  10. 【OCP-12c】CUUG最新考试原题整理及答案(071-12)

    12.(5-12)choose two:Examine the data in the CUSTOMERS table:You want to list all cities that have mo ...