前言:
GitHub的核心是Git仓库的管理功能,另外,Git的基本使用学习更是使用GitHub的基础,因此Git的学习是GitHub学习之首!这已成为IT工作的职能要求之一了!
纵观Git的诞生和由来,我们不得感叹这一开源版本管理系统软件的强大和快捷,但同时为初学者带来了不小的阻碍,但是通过循序渐进的学习,不断实践和应用,最终会感谢Git和Github为你的工作和生活带来的便利和快捷!
(一)Git的由来和诞生背景
- 自2002年开始,Linus Torvalds决定使用BitKeeper作为Linux内核主要的版本控制系统用以维护程式码。
- 2005年由于在 Linux 内核开发中使用的既有版本管理系统的开发方许可证发生了变更,为了更换新的版本管理系统,Torvalds 以十天的时间编写出git第一个版本。
- 在当时的开源环境下,虽然已经有数款版本管理软件被开发出来,但功能和性能都差强人意。加之 Git 是由 Linus Torvalds 亲自着手开发的,可以说在功能与性能方面无可挑剔。
- 在发布之初,Git 由于其艰涩难懂,只有部分黑客愿意使用。但随着众多开发者的共同努力,现在它已被全世界的程序员们所采用。
(二)分散型与集中型版本管理系统的区别
- Git 属于分散型版本管理系统,是为版本管理而设计的软件。
- 版本管理:就是管理更新的历史记录。它为我们提供了一些在软件开发过程中必不可少的功能,例如记录一款软件添加或更改源代码的过程,回滚到特定阶段,恢复误删除的文件等。
- 版本管理系统可以分为集中型和分散型。
1.集中型版本管理系统
- 仓库集中存放在服务器之中,所以只存在一个仓库。
- 集中型将所有数据集中存放在服务器当中,有便于管理的优点。
- 一旦开发者所处的环境不能连接服务器,就无法获取最新的源代码!
- 服务器宕机也会出现同样的道理!
- 如果服务器故障导致数据消失,恐怕开发者就再也见不到最新的源代码了!
2.分散型版本管理系统
GitHub 将仓库 Fork 给了每一个用户。Fork 就是将 GitHub 的某个特定仓库复制到自己的账户下。Fork 出的仓库与原仓库是两个不同的仓库,开发者可以任意编辑!
由于本地环境就有仓库,所以不必连接远程仓库就可以进行开发。
图中只显示了一般的使用流程。实际上,所有仓库之间都可以进行push 和 pull(这也是我们为什么说Git基础中的基础了)。即便不通过 GitHub,开发者 A 也可以直接向开发者 B 的仓库进行 push 或 pull。因此在使用前如果不事先制定规范,初学者往往会搞不清最新的源代码保存在哪里,导致开发失去控制。因此使用前要制定相应的规范!
3.选择那种版本管理系统
- 不能单纯地指出集中型和分散型的好与坏,因为他们都有各自明显的优缺点(前面介绍过两种类型的系统了,可大致体会下),所以根据实际的生产环境和需求,我们会根据优点最大化去选择不同类型系统。
- 但是,随着Linux的广泛普及,Git自身的不断发展和完善,GitHub的受众范围的扩大(已经成为世界级的Git仓库托管平台),Git分散型版本控制系统已成为世界上大多数团体和开发公司采用的主流版本控制系统。同时基于Git开发出来的仓库托管平台(类似GitHub,如国内的Gitee)也在各个国家和地区广泛使用!
可以说Git作为你的第一个版本管理系统再好不过了,因为只要规则制定得当,分散型同样能像集中型那样进行管理。
(三)Git的安装
最后,文中如有不足,敬请批评指正!