标签:网络 管理系 distrib 加密 odi block cal svn 历史
要了解什么是git,首先需要了解什么是版本控制(Version Control),版本控制系统(Version Control System,简称VCS)是一种记录一个或多个文件的变化的系统,这样的系统能够方便你今后调用找回某个特定时期(或版本)的文件。 版本控制系统广泛地应用于程序开发等领域,它可以协助你将某个指定的文件(甚至是一整个项目)返回至某个之前记录的状态,查看发生了哪些变化、对变化进行比较或者是修正致命错误。 版本控制系统主要经历了本地版本控制,集中式版本控制到分布式版本控制的发展:
在2005年,Linux内核开发团队与其使用的分布式版本控制系统BitKeeper的开发公司关系破裂,他们没有了免费使用BitKeeper的特权。这直接催生了Linux开发社区自己开发一套分布式版本控制系统的想法。 Linux开发社区借鉴了之前使用BitKeeper时看到的闪光点,并希望能够在版本控制系统的速度、架构设计与各类特性支持中作出较好的改进与提升,于是,git诞生了。
git与其它主流的VCS最大的区别就是,在项目版本更新的过程中,git记录的并非是基于初始文件的变化数据,而是通过一系列快照(Snapshot,就像是个小型的文件系统)来保存记录每个文件。如果有些文件在版本更新后没有发生任何变化,那么在新的版本中它会是一个指向最近一次更新的文件版本的链接。 此外,几乎所有git的操作都是在本地进行的,所以,没有了“延迟”,几乎所有的操作都是瞬间完成的。例如,当你想要查看项目历史时,不需要特地去服务器上抓取历史记录,直接在本地浏览即可。这意味着,你可以在本地对比两个不同版本的文件的差别,可以在本地查看过去有哪些人对指定文件作出了修改与更新,可以……几乎完全本地化的操作也让这样一种场景成为了可能: 当一个人在飞机、火车上,或者是任何因素导致没有网络连接条件但是又必须抓紧时间对自己的项目进行修改与开发,同时又需要有版本管理系统来记录每次他commit的历史,这时,git提供了他所有需要的便利。
git使用SHA-1 Hash算法加密生成的40位字符串(而不是文件名)来记录代表git中的每样东西。格式就像这样:
??6bafcdc09f3d6d416f6572f82082987a486d3098
git中的文件主要会处于三种状态,它们分别是:
这样的机制致使git的镜像会由三个部分组成(假设有一个git目录叫git-repo):
非原创,来源:http://www.cnblogs.com/shenhaocn/archive/2011/03/13/1982957.html
标签:网络 管理系 distrib 加密 odi block cal svn 历史
原文地址:https://www.cnblogs.com/wu-lala/p/10480703.html