Git and Github
欢迎访问我的个人博客:blog.wuzhenyu.com.cn
相信对于程序员来说,git 和 github 一定不会陌生,可能很多人每天都会与他们打交道。有次与同事聊天,他问我,git 和 github 有什么区别呢。最开始,我的理解是,把 git 看成是一个版本控制工具,而 github 作为一个源代码托管平台,我们可以通过 git 工具,从代码托管平台 clone 或者 commit 文件。
对于这个理解,确实显得过于肤浅,但是要谈到这两者之间的关系,还是需要从 git 的诞生历史说起。
Git
Git 是一个分布式版本控制系统,最初是由 linux 之父 linus torvalds[1] 于 2005 年以 GPL 发布的。 git 可以说是 linus 在完成 linux 这一宏伟产品后又一个划时代的产品,虽然他本人曾很谦虚的说,如果没有 git,肯定会有 git 类 (git like) 的产品出现[2]。
2002年至2005 年, Linus 顶着开源社区精英们口诛笔伐的压力,选择了一个商业版本控制系统 BitKeeper 作为 Linux 内核的代码管理工具。BitKeeper 不同于 CVS 和 SVN 等集中式版本控制工具,而是一款分布式版本控制工具,它满足了 Linux 内核开发的技术需求。
分布式版本控制系统最大的反传统之处在于,可以不需要集中式的版本库,每个人都工作在通过克隆建立的本地版本库中。也就是说每个人都拥有一个完整的版本库,查看提交日志、提交、创建里程碑和分支、合并分支、回退等所有操作都