git(1)背景和诞生

127 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情

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.

背景

现在的工作和学习中,创意和想法的保存及备份是非常重要的,也很难想象一个才思敏捷的有创意的人会在没有备份策略的情况下去启动和持续进行一个项目。数据是短暂且容易丢失的,尤其在工作中,能够进行持续的备份和存档尤为重要。

对于文本和代码项目来讲,备份策略通常包括版本控制,或者叫“对变更进行追踪管理”。不管进行什么项目,几乎每个开发人员每一天都在修改和完成许多个代码的变更,而这些变更又是持续增长的,若干变更叠加在一起的时候,就构成了一个版本库。这个版本库的作用就是用来对项目进行描述,方便团队的沟通和对产品进行管理。无疑,定制好了工作目标和流程,版本控制是一种最为高效的组织管理方式。

版本控制系统vcs/ 源代码管理器scm /修订控制系统rcs 即:可以管理和追踪软件代码或类似内容的不同版本的工具。每一个工具都有同样的目的:开发以及维护开发出来的代码、方便读取代码的历史版本、记录所有的修改。

Git诞生

如同货币的不断更迭,开发人员在工具跟不上项目需求时就会开发一个新的工具,这个过程是必须经过深思熟虑的,充分的需求、理性的洞察和良好的动机缺一不可。

在git诞生之前,Linux内核开发过程中一直使用的是Bitkeeper来作为vcs,在此使用的过程中,免费版的Bitkeeper加入了额外的限制,这也使linux社区意识到使用Bitkeeper绝不是一个长久之计,找寻替代品变得刻不容缓。新的替代品需要什么功能和在原基础上要做什么更改呢?

  • 有助于分布式开发 (允许多人在自己的版本库中进行独立的开发,不需要和中心版本库进行时刻的同步且满足离线状态)
  • 能够胜任上千开发人员的规模
  • 性能优异(既要保证执行速度且确保网络的不确定因素不会影响到日常开发效率)
  • 保持完整性和可靠性
  • 强化责任(创建数据对象放入数据库中后便不可修改)
  • 原子事务(提交操作时,版本数据库不会陷入部分改变或者破损状态)
  • 支持并且鼓励基于分支的开发
  • 完整的版本库
  • 一个清晰的内部设计
  • 免费自由

git 由许多天才工程师创作而成!