设为首页收藏本站

LUPA开源社区

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

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

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

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


  我们使用git merge remotes/MYSERVER/master命令之后。这里的merge是一个快进(fast-forward)merge(因为我们本地没有新的提交),唯一要做的就是移动“便条”master,相应的改变我们工作目录中的文件。


git-history.4


  这里我们在本地进行了一次提交,之后进行了fetch操作。我们得到了一个本地commit一个远端commit。显然这里需要一次merge。


git-history.5


  这是git merge remotes/MYSERVER/master之后的结果。因为我们有本地的提交,所以这次的merge不是快进式的。一个新的commit节点e被生成,它有两个父亲节点。


git-history.6


  这是一些commit以及一次merge之后两个分支的情况。看这种”缝合”式的merge,可以看到git保存了所有“行为”(commit或者merge)的历史。


git-history.7


  这种“缝合”(原文stitching)模式有时读起来比较冗长。如果你还没有发布你的分支,或者确定别人不会在你的分支之上进行开发,那么你可以选择rebase你的分支。这时,merge操作不会被执行,你的commit会被另外一个commit代替。这个commit和你的commit有不同的parent,如上图。你的分支也会被移到新的commit处。


  你老的那个commit仍然会在有向无环图中,直到垃圾收集器回收。(Ignore them for now,but just know there’s a way out if you screwed up totally).注意如果你还有一个便条指向那个老的commit,它仍会继续指向这个commit,这会让这个commit永远存活下去。很令人困惑是吧。



酷毙

雷人

鲜花

鸡蛋

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

最新评论

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

返回顶部