git 诞生日你知道吗?
2005 年 4 月 6 日:git 项目首次对外公开
git 是一个分布式版本控制软件,最初由 Linux 之父林纳斯·托瓦兹创作,于 2005 年 4 月 6 日以 GPL 许可协议发布。最初是为了更好地管理 Linux 内核开发而设计。发布后的次日,git 实现了作为自身的版本控制工具,因此一般把 4 月 7 日视为 git 诞生日。git 是目前世界上最受欢迎的开源分布式版本控制系统,初始由林纳斯·托瓦兹开发,后移交给滨野纯。
git 最初的开发动力来自 BitKeeper 和 Monotone;git 最初只是作为一个可以被其他前端(比如 Cogito 或 Stgit)包装的后端而开发的,但后来 git 内核已经成熟到可以独立地用作版本控制。很多被广泛使用的软件项目都使用 git 进行版本控制,其中包括 Linux 内核、X.Org 服务器和 OLPC 内核等项目的开发流程。
图源:维基百科
自 2002 年开始,林纳斯·托瓦兹决定使用 BitKeeper 作为 Linux 内核主要的版本控制系统用以维护代码。因为 BitKeeper 为专有软件,这个决定在社群中长期遭受质疑。在 Linux 社群中,以理查德·斯托曼为代表的自由软件基金会成员,则主张应该使用开放源代码的软件来作为 Linux 内核的版本控制系统。林纳斯·托瓦兹也曾考虑过采用现成软件作为版本控制系统(例如 Monotone),但这些软件都存在一些问题(比如性能不佳)。而现成的其他方案,如 CVS 的架构,则受到林纳斯·托瓦兹的批评。
2005 年,安德鲁·垂鸠(Andrew Tridgell)写了一个简单程序,这个程序可以连接 BitKeeper 的仓库;BitKeeper 著作权拥有者拉里·麦沃伊认为安德鲁·垂鸠对 BitKeeper 内部使用的协议进行逆向工程,决定收回无偿使用 BitKeeper 的许可。Linux 内核开发团队与 BitMover 公司进行磋商,但无法解决他们之间的歧见。失去了 BitKeeper,林纳斯·托瓦兹只能决定自行开发版本控制系统替代 BitKeeper,最终他以十天的时间,用 C 语言编写出了 git 的第一个版本。
实际上 Linux 内核开发团队决定开始开发和使用 git 来作为内核开发的版本控制系统的时候,世界上开源社群的反对声音不少,最大的理由是 git 太艰涩难懂;但是随着开发的深入,git 的正常使用都由一些友善的命令来执行,使 git 变得非常好用。作为开源自由原教旨主义项目,git 没有对版本库的浏览和修改做任何的权限限制,通过其他工具也可以达到有限的权限控制。原本 git 的使用范围只适用于 Linux/Unix 平台,但在 Windows 平台下的使用也日渐成熟,这主要归功于 Cygwin、msysgit 环境,以及 TortoiseGit 这样易用的 GUI 工具。git 的源代码中也已经加入了对 Cygwin 与 MinGW 编译环境的支持且逐渐完善,为 Windows 用户带来福音。
推荐:《Git使用教程》
以上是git 诞生日你知道吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Go语言中用于浮点数运算的库介绍在Go语言(也称为Golang)中,进行浮点数的加减乘除运算时,如何确保精度是�...

Go语言中哪些库是大公司开发或知名开源项目?在使用Go语言进行编程时,开发者常常会遇到一些常见的需求,�...

GiteePages静态网站部署失败:404错误排查与解决在使用Gitee...

运行 H5 项目需要以下步骤:安装 Web 服务器、Node.js、开发工具等必要工具。搭建开发环境,创建项目文件夹、初始化项目、编写代码。启动开发服务器,使用命令行运行命令。在浏览器中预览项目,输入开发服务器 URL。发布项目,优化代码、部署项目、设置 Web 服务器配置。

在BeegoORM框架下,如何指定模型关联的数据库?许多Beego项目需要同时操作多个数据库。当使用Beego...

Go语言中使用RedisStream实现消息队列时类型转换问题在使用Go语言与Redis...

H5页面需要持续维护,这是因为代码漏洞、浏览器兼容性、性能优化、安全更新和用户体验提升等因素。有效维护的方法包括建立完善的测试体系、使用版本控制工具、定期监控页面性能、收集用户反馈和制定维护计划。

问题介绍:如何获取海外版的发货地区数据?是否有现成的资源可以使用?在跨境电商或全球化业务中,获取准...
