Git
是一款免费、开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
Git
是Linus Torvalds
为了帮助管理Linux
内核开发而开发的一个开源的版本控制软件。
诞生历史
Linus
在1991年创建了Linux
,Linux的代码是由全世界热心的志愿者参与共同开发,起初Linus
本人通过手工方式合并志愿者发送的代码!手工维护原因是因为Linus
坚定地反对CVS
和SVN
,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。而使用一些付费软件和Linux
的开源精神不符。
到了2002年,Linux
代码库之大让Linus
很难继续通过手工方式管理了,于是Linus
选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司,出于人道主义精神,授权Linux
社区免费使用这个版本控制系统。
2005年Linux
社区牛人试图破解BitKeeper的协议,被BitMover公司发现了,于是BitMover公司怒了,要收回Linux
社区的免费使用权。Linus
被迫花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux
系统的源码已经由Git
管理了!
Git
迅速成为最流行的分布式版本控制系统,尤其是08年GitHub网站上线,它为开源项目免费提供Git
存储,无数开源项目开始迁移至GitHub
主要特点
- 从服务器上克隆数据库(包括代码和版本信息)到单机上
- 在自己的机器上创建分支,修改代码
- 在单机上自己创建的分支上提交代码
- 在单机上合并分支
- 新建一个分支,把服务器上最新版的代码fetch下来,然后跟自己的主分支合并
- 生成补丁(patch),把补丁发送给主开发者
- 看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过
- 一般开发者之间解决冲突的方法,开发者之间可以使用pull命令解决冲突解决完冲突之后再向主开发者提交补丁
作者观点
语义:大多数情况下你可以将git看作是一个文件系统,它是基于内容寻址的,当然也有版本控制的概念,但是我确实是从一个文件系统的开发人员角度来设计git的,并且我对创建传统的SCM系统毫无兴趣。
git优缺点
优点
- 适合分布式开发,强调个体
- 公共服务器压力和数据量都不会太大
- 速度快、灵活
- 任意两个开发者之间可以很容易的解决冲突
- 离线工作
缺点
- 资料较少(中文资料)
- 学习周期相对而言比较长
- 不符合常规思维
- 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息
git相关网站
官网:https://www.git-scm.com/
官方教程:https://www.git-scm.com/book/en/v2
Pro Git(中文版):http://git.oschina.net/progit/
网友评论