
Git 简史
git是一款开源分布式的版本控制系统,可以用于有效、高速地处理文件。
同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。
Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。
到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。 他们对新的系统制订了若干目标:
- 速度
- 简单的设计
- 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
- 完全分布式
- 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统
分布式版本控制系统
分布式版本控制系统(Distributed Version Control System,简称 DVCS)是基于集成化版本控制的缺点,为解决集成化的问题由linux之父开发开源。 在这类系统中,像 Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。

Git的功能特性:
从一般开发者的角度来说:
1.可以从服务器克隆完整的git仓库(包括代码和版本信息)到单机上。
2.在自己的机器根据不同的需求创建分支、修改代码。
3.在单机上通过自己创建的分支上传代码。
4.在单机上合并分支。
5.把服务器最新的代码fetch下来,然后跟自己的主分支进行合并。
6.生成不定patch,把补丁发送给主开发者。
7.如果两个一般开发者同时提交的代码有冲突,那么就需要一个开发者在另一个开发者更新之后,pull下来最新代码解决代码冲突再进行提交。
从主开发者的角度:
1、查看邮件或者通过其它方式查看一般开发者的提交状态。
2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3、向公共服务器提交结果,然后通知所有开发人员。