git底层原理(一)】的更多相关文章

git对象模型 在git系统中有四种类型的对象,所有的Git操作都是基于这四种类型的对象:"blob":这种对象用来保存文件的内容."tree":可以理解成一个对象关系树,它管理一些"tree"和"blob"对象."commit":指向一个"tree",它用来标记项目某一个特定时间点的状态.它包括以下关于时间点的元数据,如时间戳.最近一次提交的作者.指向上次提交等."tag&q…
1.git仓库的初始化: 输入git init指令,会看到在当前空目录下创建了一个.git隐藏文件夹,这个就是git实现一切版本管理的关键.进入到.git目录下,里面包含三个文件(config/description/HEAD)和四个文件夹(hooks/info/objects/resf) 官方对各个文件和文件夹有详细的介绍: - config:记录与本项目相关的配置信息 - descripton:是GitWeb项目对于本仓库的基本描述 - HEAD:内部记录了当前分支的最后一次提交(默认指向r…
文章目录: GIT体系概述 GIT 核心命令使用 GIT 底层原理 一.GIT体系概述 GIT 与 svn 主要区别: 存储方式不一样 使用方式不一样 管理模式不一样 1.存储方式区别 GIT把内容按元数据方式存储类似k/v数据库,而SVN是按文件(新版svn已改成元数据存储) n 演示git 存储过程演示 cd .git/objects/df/ git cat-file -p df70460b4b4aece5915caf5c68d12f560a9fe3e4 echo 'version1' >…
Git 内部原理 不管你是从前面的章节直接跳到了本章,还是读完了其余各章一直到这,你都将在本章见识 Git 的内部工作原理和实现方式.我个人发现学习这些内容对于理解 Git 的用处和强大是非常重要的,不过也有人认为这些内容对于初学者来说可能难以理解且过于复杂.正因如此我把这部分内容放在最后一章,你在学习过程中可以先阅 读这部分,也可以晚点阅读这部分,这完全取决于你自己.(伯乐在线注:如果你对Git还不了解,建议从本Git系列第一篇文章开始阅读) 既然已经读到这了,就让我们开始吧.首先要弄明白一点…
Git和SVN是我们最常用的版本控制系(Version Control System, VCS),当然,除了这二者之外还有许多其他的VCS,例如早期的CVS等.顾名思义,版本控制系统主要就是控制.协调各个版本的文档内容的一致性,这些文档包括但不限于代码文件.图片文件等等.早期SVN占据了绝大部分市场,而后来随着Git的出现,越来越多的人选择将它作为版本控制工具,社区也越来越强大.相较于SVN,最核心的区别是Git是分布式的VCS,简而言之,每一个你pull下来的Git仓库都是主仓库的一个分布式版…
Git 内部原理 无论是从之前的章节直接跳到本章,还是读完了其余章节一直到这——你都将在本章见识到 Git 的内部工作原理 和实现方式. 我们发现学习这部分内容对于理解 Git 的用途和强大至关重要.不过也有人认为这些内容对于初学 者而言可能难以理解且过于复杂. 因此我们把这部分内容放在最后一章,在学习过程中可以先阅读这部分,也 可以晚点阅读这部分,这取决于你自己. 无论如何,既然已经读到了这里,就让我们开始吧. 首先要弄明白一点,从根本上来讲 Git 是一个内容寻 址(content-addr…
以下内容转载自:http://www.open-open.com/lib/view/open1328070620202.html Git 内部原理 不管你是从前面的章节直接跳到了本章,还是读完了其余各章一直到这,你都将在本章见识 Git 的内部工作原理和实现方式.我个人发现学习这些内容对于理解 Git 的用处和强大是非常重要的,不过也有人认为这些内容对于初学者来说可能难以理解且过于复杂.正因如此我把这部分内容放在最后一章,你在学习过程中可以先阅 读这部分,也可以晚点阅读这部分,这完全取决于你自己…
维护与数据恢复 有的时候,你需要对仓库进行清理 - 使它的结构变得更紧凑,或是对导入的仓库进行清理,或是恢复丢失的内容. 这个小节将会介绍这些情况中的一部分. 维护 Git 会不定时地自动运行一个叫做 “auto gc” 的命令. 大多数时候,这个命令并不会产生效果. 然而,如果有太多松散对象(不在包文件中的对象)或者太多包文件,Git 会运行一个完整的 git gc 命令. “gc” 代表垃圾回收,这个命令会做以下事情:收集所有松散对象并将它们放置到包文件中,将多个包文件合并为一个大的包文件,…
说到Git大家应该都非常熟悉,几乎每天都会用到它.在日常使用过程中,我们貌似并不需要关注其内部的原理,只需要记住那几个常用的命令,就可以说自己是会Git的人了.可是,事实真的是这样子的吗?今天我们就来聊聊那些不太被关注到的内部原理. 引言 首先我们要明白的一点就是,Git是一个内容寻址(content-addressable)文件系统,并在此之上提供了一个版本控制系统的用户界面. 还有一点需要明白的就是,我们日常使用的命令(checkout.commit)对用户更加友好,因此被称为高层(porc…
Git独特之处 Git是一个分布式版本控制系统,首先分布式意味着Git不仅仅在服务端有远程仓库,同时会在本地也保留一个完整的本地仓库(.git/文件夹),这种分布式让Git拥有下面几个特点: 1.直接记录快照,而非差异比较 在文件存储方面,Git有别于其他版本控制系统(如CVS.Subversion),Git本身关心文件的整体性是否有改变,而不是文件内容的差异. 2.近乎所有操作都是本地执行 在 Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息. 如果你习…