这个是继 Redis
, MySQL
之后的第三个系列了。然而,前两个系列还都没有写完。so
, Redis
和 MySQL
pause.
只是暂停~,我会在未来的三年内,将它们全部完成。
叮~
git
!
说到git
,我们先了解一个人,linus Torvalds
(林纳斯·托瓦兹)
林纳斯·托瓦兹 是当今世界最著名的电脑程序员、黑客之一。他是linux内核的最早作者,随后发起了这个开源项目,担任linux内核的首要架构师和项目协调者。并于2005年7月11日,发布了仅用10天时间开发出的最早版本的git 0.99。到今天(2020年7月13日),最新的版本号是2.27. 这个系列就以该版本进行分享。
git
2002
年开始,林纳斯·托瓦斯 决定使用 BitKeeper
作为主要的版本控制系统来维护代码。但是社区中很多人认为,应该使用开源的版本控制软件来维护代码 林纳斯·托瓦斯也考虑使用monotone
,但是 林纳斯·托瓦斯 嫌弃其性能不佳。在2005
年,林纳斯决定自行开发一套版本控制系统。
为什么称为git
呢?
git
在英氏俚语中表示 不愉快的人。
下面是 林纳斯·托瓦兹 对git
的描述
The name "git" was given by Linus Torvalds when he wrote the very first version. He described the tool as "the stupid content tracker" and the name as (depending on your way): random three-letter combination that is pronounceable, and not actually used by any common UNIX command. The fact that it is a mispronunciation of "get" may or may not be relevant. "global information tracker": you're in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room. stupid. contemptible and despicable. simple. Take your pick from the dictionary of slang.
林纳斯·托瓦兹在编写第一个版本时就使用了“git”
这个名称。他将工具描述为“愚蠢的内容跟踪器”,并将其描述为(取决于您的方式):
可以发音念出的随机三个字母组合,而且并未被实际用在任何 UNIX
指令上。它是“get”
的错误发音,这点可能相关也可能无关。“全局的信息跟踪器”:您的心情不错,对你而言它也确实说得通。天使唱歌,房间突然充满光明。( Global Information tracker
)愚蠢的。鄙视和卑鄙的。简单。从俚语字典中选择。
git的实现原理
git
更像是一个文件系统,直接从本机上获取数据,不用连接服务端,每个开发者都可有全部开发历史的本地副本,changes
从这种本地repository
复制给其他开发者。这些changes
作为新增的开发分支被导入,可以与本地开发分支合并。
而且,分支是轻量的,一个分支是对一个commit
的引用。
git
使用C语言进行开发的,以追求更高的性能。git
自动完成了垃圾回收,也可以通过 git gc --prune
git
存储每个新创建的object
作为一个单独文件。为了压缩存储空间占用, packs
操作把很多文件(启发式类似名字的文件往往具有类似内容)使用差分压缩入一个文件中(packfile
),并创建一个对应的索引文件,指明object
在packfile
中的偏移值。新创建的对象仍然作为单独文件存在。repacks
操作非常费时间,git
会在空闲时间自动做此操作。也可用命令git gc
来直接启动repack
。packfile
与索引文件都用SHA-1作为校验和并作为文件名。git fsck
命令做校验和的完整性验证。
Git服务器典型的TCP监听端口为9418
。
git
和其他版本控制系统(如CVS
)有不小的差别,git
本身关心文件的整体性是否有改变,但多数的版本控制系统如CVS
或Subversion
系统则在乎文件内容的差异。git
拒绝保持每个文件的版本修订关系。因此查看一个文件的历史需要遍历各个history
快照;git
隐式处理文件更名,即同名文件默认为其前身,如果没有同名文件则在前一个版本中搜索具有类似内容的文件.
以上简要介绍,先到这里,我们来看下,git
相关文章的目录。
git
介绍git
安装git
简单使用git
使用进阶git
高级命令git
底层命令git
分支git
远程仓库git
工作流git
搜索git
再谈重置git
安全性验证git
钩子git
传输协议git
数据维护和修复git
工作原理
最后
更多精彩内容尽在方家小白,等你哦。
来都来了,点个赞,再走呗~