Git分支
来源:互联网 发布:淘宝商家物流信息 编辑:程序博客网 时间:2024/05/17 07:44
分支其实就是一个指向一个commit id的引用,而工作区下面的.git/HEAD
文件里的内容就是当前所处在的分支的引用, 通过改变这个文件的指向的分支从而切换分支!而.git/refs/heads/
目录下面的每一个文件都对应一个分支,文件名就是分支名(例如:在master分支上提交一次,那么这个分支对应的文件目录就是.git/refs/heads/master
)。下面我们用图演示一番。
首先初始化一个本地版本库,然后在master分支进行第一次提交(因为不提交一次,.git/refs/heads/
下面就不会产生master文件 )。
然后查看此次提交的commit id为1a05d46cf1795bca209ad22af98d08aa14eb4cf7
。下面我们看下master分支的指向。
master里面的内容就是刚才我们提交的commit id。上面说.git/HEAD
文件里面记录的时候当前指向的分支,现在我们来查看这个文件来看看是否如此。
事实果然如上面所说,此文件指向的就是.git/refs/heads/master
文件(因为是从工作区访问这个文件所以需要加上.git/)。
上面关系图描述它们之间的关系。
现在我们进行第二提交,然后查看提交commit id为ee5639547e82ba99f95942ffec229d97428821a7
,现在第一次提交是第二次提交的父提交。而master分支会指向最新的提交也就是第二次提交。由于我们没有切换分支HEAD指向没变。
执行第二次提交之后的关系图。下面我们来看下分支之间的关系是怎么样的。
这里使用git checkout -b
命令创建一个名叫feature的分支然后切换到此分支上。然后查看分支对应的分支文件里面提交commit id(这里由是在master分支上创建的一个新分支,因此这个新分支会指向master分支所指向的commit id)。
创建feature分支之后的关系图,由于切换了分支所以HEAD的指向也改变了。
参考
《Pro Git》
如此文章有不对地方请多多指正!
- Git 分支新建分支
- Git 分支 - 分支简介
- Git 分支 - 远程分支
- Git 分支 - 分支简介
- Git分支-分支简介
- Git分支
- Git 分支
- git 分支
- Git 分支
- Git 分支
- git 分支
- git 分支
- Git 分支
- git分支
- git分支
- Git分支
- Git分支
- git 分支
- 基于简单seq to seq 的聊天机器人+代码实现 (tensorfow 1.1版本)
- newman的安装
- HDU 5536 01字典树
- 昨天,今天,明天
- 网络编程(UDP传输并将使用多线程进行优化)
- Git分支
- Struts2 Part5
- spring
- 深入浅出数据结构C语言版(14)——散列表
- Tensorflow中卷积函数汇总
- 去去去
- 通信协议一(HTTP)
- 一步步带你做vue后台管理框架(一)——介绍框架
- RDD论文翻译 --弹性分布式数据集:一种基于内存的集群计算的容错性抽象方法