登录        注册
本站基于Django开发,源码 Github 欢迎 Fork、Star。由于站点升级导致评论区留言信息丢失,欢迎前来发表新的评论

Github|什么是Github和Git?

GIT stormsha 2926浏览 34喜欢 0评论
本渣渣不专注技术,只专注使用技术,不是一个资深的coder,是一个不折不扣的copier

没有理论只有实战的GIT、Github纪要

1、Git、Github 个人见解

Git 是弓,代码是箭,Github是靶子。

Git 是本地仓库,可以在本地创建仓库,在本地把代码存在仓库中。

Github 是在线仓库, 可以在线创建仓库,在线把代码存在仓库中。

2、Git、Github 渊源

Git 早于 GitHub 出生

众所周知,1991年 Linus 发布了开源的 Linux,从此 Linux 系统不断发展,已经成为最大的服务器系统软件。

Linus 只是创建了Linux,但 Linux 的壮大是靠全世界码农志愿者撑起的,这么多人在世界各地为 Linux 编写代码,那 Linux 的代码是如何管理的呢?

事情是这样的

在 2002 年以前,世界各地的志愿者把源代码文件通过 DIFF 的方式发给 Linus,由 Linus 本尊通过手工方式合并!

那么问题来了,为什么 Linus 不把 Linux 代码放到版本控制系统里呢?不是有 CVS、SVN 这样的免费版本控制系统吗?事实是 Linus 坚定地反对 CVS 和 SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽比 CVS、SVN 好用,但那是付费的,和 Linux 的开源精神不符

2002 年,Linux 系统已经发展了十年,代码库之大让 Linus 很难继续通过手工方式管理,社区的弟兄们也对这种方式表达了强烈不满,于是 Linus 选择了一个商业的版本控制系统 BitKeeper,BitKeeper 的东家 BitMover 公司出于人道主义精神,授权 Linux 社区免费使用这个版本控制系统

2005 年,Linux 社区牛人聚集,不免有些梁山好汉的江湖习气。开发 Samba 的 Andrew 试图破解 BitKeeper 的协议,被 BitMover 公司发现,就这样 BitMover 公司怒了,要收回Linux社区的免费使用权。Linus 可以向 BitMover 公司道个歉,保证以后严格管教弟兄们,BitMover 公司应该不会那么小气,嗯,这是不可能的

实际情况是这样的

Linus 花了两周时间自己用C写了一个分布式版本控制系统,这就是 Git!一个月之内,Linux 系统的源码已经转到 Git 管理了!牛是怎么定义的呢?大家可以体会一下。Git 迅速成为最流行的分布式版本控制系统

历史就是这么偶然,如果不是当年 BitMover 公司威胁 Linux 社区,可能现在我们就没有免费而超级好用的Git了。

2008 年,Tom Preston 使用 Git 作为版本控制软件创建了 Github,一个专门托管代码并且可以实现版本控制的网站,它为开源项目免费提供Git存储,无数开源项目开始迁移至 GitHub,包括jQuery、PHP、Ruby、Python 等等。

可爱的码农侃称 Github 是全球最大男性交友网站。讲道理,Github 的注册用户大都是男生,而且彼此之间可以相互关注,就是IT界的新浪微博

3、什么是版本控制器?

版本控制(Version control): 顾名思义,版本控制系统是能让你了解到一个文件的历史,以及它的发展过程的系统

Git 是一种专为处理文本文件而设计的版本控制系统。归根到底是代码的本质:一堆堆以某种方式联合在一起的文本文件。Git 是一个可安装应用,它允许你对你自己所做的更改进行注释,用以创建易于导航的系统历史。

那么, Git 做了什么,是简单地保存文件所做不到的呢?从根本上讲,文件保存就是一个简化的版本控制系统,但坦率地说,它并不是一个好用的系统,因为它只能前进。当然,你也许会反驳 "撤消" 按钮可以让你的文件回滚到以前的状态。但我们都清楚,"撤消" 按钮有其局限性,最明显示的是,在关闭文件时,文件的过去也随之丢失。 此外,文件保存是非常个人化的。它不能够显示整个系统的历史,只能够显示该文件的。针对这一点,你可能会想,"嗯,我不是一个工程师,我不需要为系统烦恼"。我愿意花些时间来解释一下,很多事情你认为不是 "系统",而实际上它们就是, 比如写一本小说如果会使用Git会让你的写作更高效,不要认为 Git 只是程序员的专属工具。

4、什么是Github?

GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名GitHub

摘自百度:作为开源代码库以及版本控制系统,Github 注册用户已经超过350万。随着越来越多的应用程序转移到了云上,Github 已经成为了管理软件开发以及发现已有代码的首选方法。 如前所述,作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。

GitHub 可以托管各种 Git 库,并提供一个 web 界面,但与其它像 SourceForge 或Google Code 这样的服务不同,GitHub 的独特卖点在于从另外一个项目进行分支的简易性。

为一个项目贡献代码非常简单:首先点击项目站点的 "Fork" 按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的 "pull request" 机制向项目负责人申请代码合并。已经有人将 GitHub 称为代码玩家的 MySpace。

在GitHub进行分支就像在Myspace(或Facebook…)进行交友一样,在社会关系图的节点中不断的连线。 GitHub项目本身自然而然的也在GitHub上进行托管,只不过在一个私有的,公共视图不可见的库中。

开源项目可以免费托管,但私有库则并不如此。Chris Wanstrath,GitHub的开发者之一,肯定了通过付费的私有库来在财务上支持免费库的托管这一计划。 是的,我们正是这么计划的。通过与客户的接洽,开发 FamSpam,甚至是开发 GitHub 本身,GitHub 的私有库已经被证明了物有所值。任何希望节省时间并希望和团队其它成员一样远离页面频繁转换之苦的人士都会从GitHub中获得他们真正想要的价值。 在 GitHub,用户可以十分轻易地找到海量的开源代码。

总而言之,我希望我已经说服你去尝试使用 Git 和 Github 进行任何项目。这不仅仅是一个工程师使用的工具。

推荐阅读

Github(1)|基础认知    Github(2)|亲密接触Github    Github(3)|Git和Github交互

参考文章

Git|Github实操指南

Git的诞生

大白话解释 Git 和 GitHub

转载请注明: StormSha » Github|什么是Github和Git?

发表我的评论

表情
(0)个小伙伴在吐槽|0条评论
暂时没有评论,欢迎来尬聊!