Git之旅① - 历史起源与特点( 二 )
很多公司使用的类似GitHub的开源系统:Gitlab
基于git的持续集成CI
......
5. 极客之王其实 , 让林纳斯更被人熟知的是Linux kernel(GNU/Linux) 。 目前 , 该系统跑在全世界超过80%的服务器以及超级计算机上 。 我们每天都在靠着这位神一样存在的人物 , 赏口饭吃 。 他 , 是名副其实的极客之王 。
kernel 官网:
Git官网:
Git源码GitHub地址:
林纳斯GitHub地址:
两本关于林纳斯的书籍
文章插图
文章插图
一部关于Linux的纪录片
文章插图
6. 版本控制系统(VCS)版本控制系统(version control system),是一种记录一个或若干文件内容变化 , 以便将来查阅特定版本修订情况的系统 。 版本控制系统不仅可以应用于软件源代码的文本文件 , 而且可以对任何类型的文件进行版本控制 。 用的比较多的如svn , git等 。
6.1 SVN vs GITsvn:是集中化的版本控制系统, 只有一个单一的集中管理的服务器 , 保存所有文件的修订版本 , 而协同工作的人们都通过客户端连到(必须联网)这台服务器(中央服务器保存版本库元数据) , 取出最新的文件或者提交更新 。
git:是分布式的版本控制系统 , 每一个终端都是一个仓库(不联网也可以,在各个客户端都保留有版本库元数据) 。 客户端并不只提取最新版本的文件快照 , 而是把原始的代码仓库完整地镜像下来 。 每一次的提取操作 , 实际上都是一次对代码仓库的完整备份(如果想测试的话 , 可以把 .git/object/*删除,然后再次pull 。 不建议实际中操作 , 可以测试使用) 。 最重量级的是创建分支so easy!
6.2 关于仓库
文章插图
图中的圆柱体(数据版本库)说明了SVN代码仓库的位置 , 单点 。
文章插图
图中的圆柱体说明了GIT代码仓库的位置 , 多点(堪比鸣人影分身) 。
6.3 关于版本
文章插图
中央服务器完了 , 就全完了 。
文章插图
什么?全完?不存在的!
7. 常用的保存方式
常用的2种方式
1. 记录文件每个版本的 快照2. 记录文件每个版本之间的 差异
GIT采用第一种方式 。 像Subversion和Perforce等版本控制系统都是记录文件每个版本之间的差异(增量保存各个版本) , 这就需要对比文件两版本之间的具体差异 。 但是GIT不关心文件两个版本之间的具体差别 , 而是关心文件的整体是否有改变 。 若文件被改变 , 在添加提交时就生成文件新版本的快照 , 而判断文件整体是否改变的方法就是用SHA-1算法计算文件的校验和 。
GIT能正常工作完全信赖于这种SHA-1校验和 , 当一个文件的某一个版本被记录之后会生成这个版本的一个快照 , 但是一样要能引用到这个快照 , GIT中对快照的引用 , 对每个版本的记录标识全是通过SHA-1校验和来实现的 。
当一个文件被改变时 , 它的校验和一定会被改变(理论上存在两个文件校验和相同 , 但机率小到可以忽略不计,大概 16^40) , GIT就以此判断文件是否被修改 , 及以记录不同版本 。
- LetsGoDigital分享三星Galaxy S21系列全家桶渲染图
- 汕头世爵影音获挪威音乐之旅品牌中国(包括香港,澳门)总代理
- 更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇
- 世界首枚5G纪念币发行!里程碑式历史意义,首发预定
- 2020年中国创新方法大赛总决赛 天津团队创历史佳绩
- 历史性时刻!全球物联网设备数量大曝光:中国占全球75%份额
- 三季度全球PC出货量创历史新高:联想、苹果成直接受益者
- 历史何其相似:电动车狂潮与自行车泡沫
- 小身材有大用处,盘点 Gitee 上那些实用的JS小工具
- GitOps—通过CI/CD自动化构建虚拟机模版