暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

git之系列开篇

方家小白 2020-08-16
110

这个是继 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
    工作原理


最后

更多精彩内容尽在方家小白,等你哦。

来都来了,点个赞,再走呗~

文章转载自方家小白,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论