浅谈Git、GitHub、GitLab之间的关系

timg.jpeg

一、前言

什么是Git?

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 很多 Freedesktop 的项目迁移到了 Git 上。
SVN, CVS这类早期的集中式版本控制系统,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

它们的原理类似下图:
962464.jpg

集中式版本控制系统
而Git或Mercurial这类分布式版本控制系统, 才是现代的首选。因为分布式的优势绝对显著。
在分布式版本控制系统里,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。
这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。
123456.png

分布式版本控制系统
现在,Google, Facebook, Microsoft等世界级公司每天在用Git。
众所周知,IT界大牛很多, 但是大牛中的大牛稀少。
Linus Torvalds就是其中之一,Linus Torvalds不但开创了Linux操作系统,而且他发明了Git版本控制系统。
现在的Android系统底层就是基于更改过的Linux系统,你说Linus Torvalds是不是贡献极大。


850498-20160726135328606-1126645596.png

特点

  1. 从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
  2. 在自己的机器上根据不同的开发目的,创建分支,修改代码。
  3. 在单机上自己创建的分支上提交代码。
  4. 在单机上合并分支。
  5. 把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
  6. 生成补丁(patch),把补丁发送给主开发者。
  7. 看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
  8. 一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • GIT分布式版本控制系统最佳实践 这篇文章来自于老男孩教育高级架构师班12期的徐亮偉同学。 首先感谢老男孩架构师班...
    meng_philip123阅读 3,476评论 4 36
  • 老师即将去读博,这是他给我们上的最后一节课。我们马上出国,他亦将到往远方,可能往后难再见一面。一向不苟言笑的他突...
    H0712阅读 394评论 0 0
  • 云收昼敛对梳窗 怎忍怨流光 晚妆许略愁恨 还频顾 远山长 花露重 泪千行 易成伤 烛光飘渺 谁画黛眉 夜偏微凉
    张百酒阅读 203评论 0 5
  • 【早起】05:00 【睡觉】22:00 【学习】 1.诵读《黄帝内经》素问17-18章1; 2.学习时间管理十讲的...
    真泥阅读 349评论 1 2