Git 第一章 Git概述 -- Git概述(版本控制版本控制工具Git历史工作机制Git和代码托管中心)

Posted Z && Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git 第一章 Git概述 -- Git概述(版本控制版本控制工具Git历史工作机制Git和代码托管中心)相关的知识,希望对你有一定的参考价值。

1. Git概述

  • Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
  • Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。

Git官网


1.1 何为版本控制

  • 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
  • 版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。


1.2 为什么需要版本控制

可以方便的由个人开发过渡到团队协作。


1.3 版本控制工具


1.3.1 集中式版本控制工具

所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,
如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,
或在不同分支工作。而且,所有数据都保存在单一的服务器上,
有很大的风险这个服务器会损坏,这样就会丢失所有的数据,
当然可以定期备份。代表产品:SVN、CVS、VSS


1.3.2 分布式版本控制工具

每个人都拥有全部的代码!安全隐患!
不会因为服务器损坏或者网络问题,造成不能工作的情况!

所有版本信息仓库全部同步到本地的每个用户,
这样就可以在本地查看所有版本历史,可以离线在本地提交,
只需在连网时push到相应的服务器或其他用户那里。
由于每个用户那里保存的都是所有的版本数据,
只要有一个用户的设备没有问题就可以恢复所有的数据,
但这增加了本地存储空间的占用。


1.3.3 分布式版本控制 VS 集中式版本控制

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,
而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,
然后工作,完成工作后,需要把自己做完的活推送到中央服务器。
集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。


Git是分布式版本控制系统,没有中央服务器,
每个人的电脑就是一个完整的版本库,
工作的时候不需要联网了,因为版本都在自己电脑上。
协同的方法是这样的:比如说自己在电脑上改了文件A,
其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,
就可以互相看到对方的修改了。Git可以直接看到更新了哪些代码和文件!

1.4 Git 历史

同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。

Linux 内核开源项目有着为数众广的参与者。
绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上
(1991-2002年间)。到 2002 年,整个项目组开始启用一个
专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

Linux社区中存在很多的大佬!破解研究 BitKeeper !

到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的
合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。
这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)
基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。(2周左右!) 
也就是后来的 Git!

Git是目前世界上最先进的分布式版本控制系统。

Git是免费、开源的,最初Git是为辅助 Linux 内核开发的,来替代 BitKeeper!

Linux和Git之父李纳斯·托沃兹(Linus Benedic Torvalds)1969、芬兰


1.5 Git 工作机制

Git–基本理论&工作流程


1.6 Git和代码托管中心



以上是关于Git 第一章 Git概述 -- Git概述(版本控制版本控制工具Git历史工作机制Git和代码托管中心)的主要内容,如果未能解决你的问题,请参考以下文章

Mac版本一文打通Git教程!史上最详细解析!

github 第一章git和github的基本操作

Git概述

Git-第一篇

Git python学习第一章 - 1.0 git管理源代码

GIT-概述与架构