设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

给那不怕似“有向无环图”字眼的人简介git

2013-11-22 11:35| 发布者: joejoe0332| 查看: 2771| 评论: 0|原作者: bruce-accumulate|来自: 伯乐在线

摘要:   给那些不怕类似“有向无环图”这样字眼的人简单介绍一下git的内部实现。  存储:  简单的说,git的对象存储就是一堆对象的有向无环图,一堆被分成几种类型的对象。这些对象都压缩存储,并且以其自身的SHA-1 ...


  refs:References,heads或者branches很像是贴在有向无环图上节点便条。有向无环图只能添加节点,已有的节点也不会变动。这些“便条”却可以随意移动。他们不会存储到历史中,它们只是在不同的仓库中移动。它们又像是书签,表明了“我在这里”。(译者注:这样我想起了进程调度的current)


  git commit命令会在有向无环图中添加一个节点。之后会移动“便条”到新加的节点上。


  HEAD这个ref有点特殊:它指向其他的ref,是一个指向当前活跃分支的指针。一般的ref都在类似heads/xxx这样的名字空间下。但是一般你可以忽略heads/部分。


git-storage.5


  remote refs:remote References可以理解成另外一个一种颜色的便条。和一般ref不同的是他们所在的名字空间。remote refs由远程的服务器控制,可以通过git fetch命令更新。


git-storage.6


  tag:tag既是有向无环图中的一个节点,也是一种便条(当然是另外一种颜色)。tag指向一个commit,包含可选的描述信息和GPG签名。通过tag的便条可以快速访问一个tag,如果丢失,可以使用git lost-found命令根据tag的GPG签名进行恢复。

 

  历史


  好了,有了上面关于git历史版本存储的知识,我们来看看git如何进行类似merge这样的操作,看看git和其他利用分支线性变化,管理历史的工具的区别。


git-history.1


  这是一个最简单的仓库。我们使用clone克隆了一个远端的仓库,并且只有一个commit。


git-history.2


  我们使用fetch,接受了来自远程仓库的一个commit,但还没有merge。


git-history.3



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部