注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

zorksylar

Nothing is impossible , if distributed.

 
 
 

日志

 
 

【Git】Git学习之What a Branch Is  

2012-02-04 00:36:00|  分类: git |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
参考资料:

什么是Branch
先说一些在执行commit的时候,会发生什么事情,
例如:现在这个repo下有三个文件:README  test.rb  LICENSE

$ git add README test.rb LICENSE
$ git commit -m 'initial commit of my project'

之后,git会创建一个commit object,这个object中包含一些metadata,下面这个图比较直观
【Git】Git学习之What a Branch Is - sylareclipse - sylar
 commit中有tree,指向了commit的文件的tree,因为是三个文件,所以这个tree的跟节点有3个blob,每个blob指向一个文件,
每次commit之后,都会产生一个新的commit object,并且指向前一个commit object。
如下图一样,commit了3次后的结果:
【Git】Git学习之What a Branch Is - sylareclipse - sylar
 

什么是Branch,Branch就是指向这些commit object的指针,git中有一个默认的master Branch,
【Git】Git学习之What a Branch Is - sylareclipse - sylar
 

创建一个Branch
git branch [name]

$ git branch testing

新创建的Branch会指向当前的commit object上
【Git】Git学习之What a Branch Is - sylareclipse - sylar
 
HEAD指针
 git中保存着一个HEAD指针,指向你当前所在的Branch
【Git】Git学习之What a Branch Is - sylareclipse - sylar
 
注意:创建一个Branch后,HEAD指针不会发生变化,如果要改变HEAD指针,需要用checkout

$ git checkout testing

【Git】Git学习之What a Branch Is - sylareclipse - sylar
 每次commit之后,HEAD指针所指向的Branch向后移动,同时带着HEAD指针一起移动
 

$ vim test.rb
$ git commit -a -m 'made a change'

【Git】Git学习之What a Branch Is - sylareclipse - sylar
  评论这张
 
阅读(168)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018