Chinaunix首页 | 论坛 | 博客
  • 博客访问: 530935
  • 博文数量: 118
  • 博客积分: 2575
  • 博客等级: 大尉
  • 技术积分: 1263
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-27 09:37
文章分类

全部博文(118)

文章存档

2017年(11)

2016年(8)

2015年(1)

2014年(9)

2013年(7)

2012年(38)

2011年(14)

2010年(18)

2009年(12)

分类: LINUX

2017-02-06 14:06:21

书抄,原文网址:https://wildlyinaccurate.com/a-hackers-guide-to-git/

1. .git中的重要概念 

     首先是对象,保存在objects目录中,是根据hash值到对象的过引。blob对象与tree对象是最重要的对象,分别对应到文件系统中的文件与目录。此外还有commit对象与tag对象等等。 

     reference主要是针对commit对象而言。 

2. commit对象 

     commit对象引用到一个root tree对象,还有一些其它的信息。 

3. branch 

     branch就是commit的对象的reference。保存在refs/heads/目录下,创建一个新的branch就是在此目录下创建一个文件,文件的内容就是commit对象(当前的)。 

4. tag 

     tag分为lightweight tag和annotated tag。前者与branch一个样,只是保存的目录是refs/tags目录,后者是一个单独的对象,所以可以保存自身相关的信息。 

5. remote 

     增加一个remote会在config文件里增加一个remote节,里面设定了远程地址与远程分支/本地保存的远程分支的对应关系。 

     fetch操作会生成FETCH_HEAD,同时会更新本地保存的远程信息。 

     pull remote branch,会查找本地的跟踪分支,如果发现有,进行merge操作。 

      

6 stash 

     stach同样创建了commit操作,特殊之处在于这是一个merge commit。原因在于当前状态包括了INDEX的状态及working tree的状态,就是在stage了一个文件的修改之后,又再修改了文件,这样我们才能恢复到原来的状态。 

阅读(545) | 评论(0) | 转发(0) |
0

上一篇:VIM 2nd:改动

下一篇:VISUDO陷阱

给主人留下些什么吧!~~