codecamp

起底Git Git简史

这是起底Git系列的第二篇,本篇我们来介绍一下Git的历史。

温故而知新可以为师矣 —— 孔子

Git之父

提到Git就绕不开一个人,那就是linus,用linus的话说他这辈子就做成了两件事,创造了linux和Git,神一样存在,linus也经常爆出来一些语录

广告时间,如果你是一个有追求的人,我建议你看下这本书——《只是为了好玩:Linux之父林纳斯自传》,里面也提到了Git的诞生

Git诞生记

这是一个传奇故事,时间定格到2005年,当时linux再使用一个叫做BitKeeper的版本控制工具,BitKeeper开发商在这一年决定不再免费提供给linux社区使用,linus当即伸出了中指,于是两周后Git诞生了

Git经过10多年的发展,内部设计基本没变化,而这一切都是linus用两周时间创造出来的

Git使命

Git在设计之初就是为了搞定linux内核这种巨无霸而设计的,所以制定了自己的使命

  • 速度
  • 简单的设计
  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

Git优点

Git作为分布式版本控制的代表,其优点不言而喻

  • 本地仓库
  • 轻量级分支
  • 分布式
  • 各种工作流

谁在使用

经过10多年的发展,目前绝大部分开源项目都在使用Git,目前Git已经处于霸主地位

  • Git
  • Linux Kernel
  • Eclipse
  • Perl
  • Android
  • TypeScript
  • webkit

存储方式

世界上的版本控制总共有两种存储方式,一种是存储差异,另一种是存储快照

存储差异:存储base文件,以后每次存储base文件的更改,SVN就是这种方石

存储快照:每次更改都存储一个新文件,Git是这种方式

总结

如果你有任何疑问的话,欢迎留言讨论;如果本系列文章对你有帮助的话,那我很荣幸,别忘了打赏哦,O(∩_∩)O哈哈~

最后感谢你的阅读,O(∩_∩)O哈哈~

继续学习

起底Git 版本控制简史
起底Git Git内部原理
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }