📜  Git的历史

📅  最后修改于: 2022-05-13 01:58:11.058000             🧑  作者: Mango

Git的历史

在版本控制系统之前,软件开发人员没有一种有效的方式来协作他们的代码。软件开发人员在尝试同时处理相同的代码时非常忙碌。他们通过邮寄彼此的代码进行即兴创作,他们将代码存储在 USB 记忆棒和物理软盘上作为备份,他们确保在小团队中工作并在系统的不同部分工作,这对于小型项目是可管理的,但人们需要大可以满足他们需求的系统。这些挑战导致需要一个版本控制系统,开发人员可以有效地协作处理代码并保留项目的各种版本的备份。

吉特的诞生

直到 2005 年 4 月,Linus Torvalds 一直在使用 BitKeeper 进行 Linux 内核开发的版本控制。他有大量的志愿者开发人员在 Linux 内核上工作,他们的贡献必须得到管理。 BitKeeper 是一个很好的工具,用于管理开发人员的巨大贡献。 Linux 开发人员在双方达成协议后免费使用该工具,因为 BitKeeper 是一个专有的源代码控制管理系统,这意味着您必须为使用该工具付费。在 Andrew Tridgell 创建了一个开源客户端以通过对 BitKeeper 协议进行逆向工程来访问 Bitkeeper 版本控制系统之后,出现了利益冲突。这导致版权所有者撤回了他们之前同意的免费使用政策。许多 Linux 内核的开发人员放弃了对 BitKeeper 的访问。

Linux 知道他必须迅速采取行动来替换他熟悉和喜爱的版本控制系统,因此他请了一个工作假期来决定要做什么,因为当前免费使用的版本控制系统当时无法解决他的问题。他假期的结果是一个名为Git的新版本控制系统的诞生。

关于如何制作下一个可以管理像他自己的大型项目的版本控制系统,他有一些目标。他着手构建一个与并发版本系统 (CVS) 完全相反的版本控制系统,该系统可以支持分布式版本控制系统,就像 BitKeeper 一样,并且包含非常强大的保护措施以防止意外或恶意损坏。 Git 的初始开发于 2005 年 4 月 3 日开始。该项目于 4 月 6 日发布,并于第二天成为自托管。那年晚些时候,Linux Torvalds 在执行基准测试后实现了其性能目标,并管理了内核 2.6.12 版本。自 2005 年 7 月 26 日起,维护工作交给了 Junio Hamano,他是该项目的主要贡献者(负责 1.0 版本),并且仍然是该项目的核心维护者。

其他几位志愿者贡献者被公司充分雇用来改进 git,例如 Jeff King 在他还是学生时就开始贡献,Shawn Pearce 通过他在 JGit 上的工作将 git 开放到 android 和Java生态系统,以及 Johannes Schindelin 开放git 到 windows 社区,了解他在 git for windows 上的工作。 2007 年底,在 Tom Preston-Werner 被同事介绍给 Git 之后,Preston-Werner 与 Chris Wanstrath、Scott Chacon 和 PJ Hyett 合作开始开发 GitHub。他看到了提供基于 git 和现代 Web 界面的源代码托管的必要性。如今,GitHub 的开发人员数量超过了竞争对手。 2009 年 3 月,谷歌在其基于 Linux 的操作系统 Android 中率先采用了 git。

当时人们认为 Git 无法管理如此庞大的项目,该项目由世界各地的许多开发人员组成,共同致力于一个开源项目。所以他们构建了 Repo,它并不是为了取代 git,而是为了让 Git 更容易使用。几年后微软也效仿,尽管众所周知他们鄙视开源工具。然而,公司发生了文化转变,他们开始接受开源,通过为 Git 开发资源库 libgit2 做出贡献,以帮助加速 Git 应用程序,但微软对 git 普及的主要推动是在 2017 年,当时为Microsoft windows 产品套件迁移到 git,它创建了世界上最大的 git 存储库。微软将于 2018 年 6 月晚些时候以 75 亿美元的微软股票收购 GitHub。这让开发社区大吃一惊,因为之前众所周知,微软反对开源,这让许多开发人员产生了怀疑并迁移到其他平台。

Git 是关于什么的?

  • Git 是一个免费的开源分布式版本控制系统,旨在快速高效地处理从小型项目到大型项目的所有项目。
  • Git 依赖于软件的分布式开发,其中多个开发人员可以访问特定应用程序的源代码,并且可以修改其他开发人员可能看到的更改。
  • 最初由 Linus Torvalds 于 2005 年为 Linux 内核开发设计和开发。
  • 每个 git 工作目录都是一个成熟的存储库,具有完整的历史记录和完整的版本跟踪功能,独立于网络访问或中央服务器。
  • Git 允许一组人一起工作,所有人都使用相同的文件。它还可以帮助团队应对多人编辑同一文件时容易发生的混乱。

Git的特点

  1. 强力支持非线性开发
  2. 分布式开发
  3. 与现有系统/协议的兼容性
  4. 高效处理大型项目
  5. 数据保障
  6. 自动垃圾收集
  7. 定期显式对象打包

更多细节请参考这篇文章:Git 简介

Git 的未来

今天 git 和 GitHub 正在接管世界,因为许多开发人员正在采用 git 和 GitHub 进行版本控制。据统计,约有5600万开发者。开发人员真的在改变世界,Git 和 GitHub 就是其中的一部分。软件开发有着光明的未来,我很高兴看到微软是一家软件公司,将在未来几年与 GitHub 合作。