git是什么
1.1 版本控制
- Git是什么?
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. - 版本控制是什么?
一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统 - 为什么需要版本控制?
更好的关注变更,了解到每个版本的改动是什么,方便对改动的代码进行检查,预防事故发生;也能够随时切换到不同的版本,回滚误删误改的问题代码;
1.1.1 本地版本控制
通过本地复制文件夹,来完成版本控制,一般可以通过不同的文件名来区分版本
开发了一些本地的版本控制软件,其中最流行的是RCS
本地保存所有变更的补丁集,可以理解成就是所有的Diff,通过这些补丁,我们可以计算出每个版本的实际的文件内容
RCS这种本地版本控制存在最致命的缺陷就是只能在本地使用,无法进行团队协作,因此使用的场景非常有限,因此衍生出了集中式版本控制
1.1.2 集中版本控制
代表性工具: SVN
- 基本原理:
2.增量保存每次提交的 Diff,如果提交的增量中和远端现存的文件存在冲突,则需要本地提前解决冲突
- 优点:
- 缺点:
1.1.3 分布式版本控制
代表性工具: Git
- 基本原理:
- 优点:
- 缺点:
1.2
- 作者
Linus Torvalds(就是Linux这个项目的作者,同时也是Git 的作者)。
- 开发原因
怀疑Linux团队对BitKeeper (另一种分布式版本控制系统,专有软件)进行了逆向工程,BitKeeper不允许Linux团队继续无偿使用。因此决定自己开发一个分布式版本控制系统。
- 开发时间
大概花了两周时间,就完成了Git的代码第一个版本,后续Linux项目就开始使用Git进行维护。
- Github
全球最大的代码托管平台,大部分的开源项目都放在这个平台上。
- Gitlab
全球最大的开源代码托管平台,项目的所有代码都是开源的,便于在自己的服务器上完成Gitlab的搭建。
- Gerrit
由Google开发的一个代码托管平台,Android这个开源项目就托管在Gerrit之上。