专业java、php、iOS、C++、网页设计、平面设计、网络营销、游戏开发、前端与移动开发培训机构
git简介
- git是一款开源的分布式版本控制工具
- 所有的分布式版本控制工具中,git是最快、最简单、最流行的、使用最广泛
git起源
- 在早期Linux使用的源代码管理工具是由BeetMover公司向Linux社区提供的免费的 BitKeeper(一个分布式版本管理工具)。 Linux社区成员 Anderew 试图破解BitKeeper协议,被发现后BeetMover中止了向Linux社区提供免费服务由于BitKeeper软件公司对Linux社区停止了免费使用权。Linus迫不得己自己开发了一个分布式版本控制工具,从而git诞生了。
- Linux 用两周时间开发出了git,并将其开源
集中式版本控制 和 分布式版本控制
- 集中式版本控制
- 分布式版本控制
其他版本控制工具
- CVS
- 最早的开源、免费的集中式版本控制工具
- 自身设计有问题,会造成提交文件不完整,版本库莫名其妙损坏的情况
- SVN
- 修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制工具
- ClearCase
- 收费的集中式版本控制工具,安装比Windows还大,运行比蜗牛还慢
- 能用ClearCase的一般是世界500强,他们有个共同的特点是财大气粗或者人傻钱多
- VSS
- 微软的集中式版本控制工具,集成在Visual Studio中
- 由于它反人类的设计,连微软自己都不好意思用了
SVN的工作流程图:
- checkout: 从将服务器仓库的代码克隆(拷贝)到个人电脑
- commit: 在个人电脑修改代码提交到服务器
- update: 更新服务器的新代码到个人电脑
git的工作流程:
- clone: 从将服务器仓库和仓库里面的代码克隆(拷贝)到个人电脑
- commit: 在个人电脑修改代码提交到本地(个人电脑)仓库
- push: 将本地仓库所做的修改推送到服务器仓库
- pull: 更新服务器仓库代码到本地仓库
git和SVN的简单对比
- 速度
- 在很多情况下,git的速度远远比SVN快
- 结构
- SVN是集中式管理,git是分布式管理
- 其他
- SVN使用分支比较笨拙,git可以轻松拥有无限个分支
- SVN必须联网才能正常工作,git支持本地版本控制工作,可以在没有网络的情况下将代码提交到本地仓库,连接上服务器后,将本地仓库
push
到原创仓库 - 旧版本的SVN会在每一个目录置放一个.svn,git只会在根目录拥有一个.git
git现状
- 具体使用 SVN 还是 git 要看公司的情况, 一半一半
- 大多数开源项目都是使用git
- 每一个 it 从业人员多多少少都要和 git 打打交道