漫话:如何给女朋友解释什么是Git和GitHub?

栏目: 编程工具 · 发布时间: 6年前

内容简介:周末,我正在家里看《最强大脑》,女朋友在一旁刷手机,相安无事。谁知道,刚过了没多久,她突然问我:

漫话:如何给女朋友解释什么是Git和GitHub?

周末,我正在家里看《最强大脑》,女朋友在一旁刷手机,相安无事。谁知道,刚过了没多久,她突然问我:

漫话:如何给女朋友解释什么是Git和GitHub?

漫话:如何给女朋友解释什么是Git和GitHub?

漫话:如何给女朋友解释什么是Git和GitHub?

版本控制

想要介绍什么是GitHub,就要介绍下什么是Git,想要介绍什么是Git,那就不得不提版本控制。

我们知道,如果多台计算机在同一个局域网中,是可以进行局域网文件共享的。共享者可以通过设置把自己文件共享给他人进行阅读和修改。

漫话:如何给女朋友解释什么是Git和GitHub?

对于同一份共享文件,如果又多个人需要修改的话会发生什么事情呢?假设现在有三个人,A分享了文件夹mhcoding,其中包含了三个文件mhcoding1.png,mhcoding2.png,mhcoding3.png,B和C需要对这份文件进行修改。

B和C分别把mhcoding文件夹拷贝到自己的电脑上,然后进行修改,改完之后需要再把自己修改上传上去。B先改完了之后把自己的文件上传上去,覆盖了A的分享。之后C也改完了,也把自己的改动上传上去。这样,C就会把B的修改覆盖掉。

为了上述这种问题,就需要通过一种方式来在C想要上传文件的时候来提醒他,告诉他需要考虑到B已经改过文件的事情。

比较好的方式就是通过版本控制。

如果使用了版本控制系统,每一个团队成员都可以在任何时间对任何文件毫无顾虑的进行修改,版本控制系统可以提醒我们文件修改冲突,甚至可以帮我们自动把多个人的改动合并到一起。

有了版本控制,我们还可以回溯查看以前某一个版本中具体文件的内容,还可以查看某一次改动的变更内容。非常适合团队协作。

漫话:如何给女朋友解释什么是Git和GitHub?

漫话:如何给女朋友解释什么是Git和GitHub?

版本控制的方式

本地版本控制系统

许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。这么做唯一的好处就是简单。不过坏处也不少:有时候会混淆所在的工作目录,一旦弄错文件丢了数据就没法撤销恢复。

漫话:如何给女朋友解释什么是Git和GitHub?

为了解决这个问题,人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文件的历次更新差异。

漫话:如何给女朋友解释什么是Git和GitHub?

集中化的版本控制系统

接下来人们又遇到一个问题,如何让在不同系统上的开发者协同工作?于是,集中化的版本控制系统应运而生。

这类系统,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

漫话:如何给女朋友解释什么是Git和GitHub?

这种做法带来了许多好处,特别是相较于老式的本地版本来说。现在,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理起来也轻松容易的多。

分布式版本控制系统

集中化最显而易见的缺点是中央服务器的单点问题。如果中央服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。

要是中央服务器的磁盘发生故障,碰巧没做备份,或者备份不够及时,就会有丢失数据的风险。

于是分布式版本控制系统面世了。在这类系统中,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。

漫话:如何给女朋友解释什么是Git和GitHub?

漫话:如何给女朋友解释什么是Git和GitHub?

Git

git其实就是一款我们前面介绍的分布式版本控制软件,Git具有以下特点:

  • 直接记录快照,而非差异比较
  • 近乎所有操作都是本地执行
  • 时刻保持数据完整性
  • 多数操作仅添加数据

漫话:如何给女朋友解释什么是Git和GitHub?

程序员是比较典型的需要团队协作的职业,大多数情况下,都是需要多个 程序员 同时开发同一个项目的,就好像多个程序员要同时修改一份word文档一样。所以,Git是很多程序员的必备工具。

漫话:如何给女朋友解释什么是Git和GitHub?

漫话:如何给女朋友解释什么是Git和GitHub?

GitHub

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

漫话:如何给女朋友解释什么是Git和GitHub?

所谓托管平台,也就是说他可以用于存放文件。只不过上面的文件都是可以公开被访问到的。

GitHub是通过Git进行版本控制的软件源代码托管服务,并且,GitHub还引入了一些社交属性。号称是世界上最大的程序员(同性)交友网站。

漫话:如何给女朋友解释什么是Git和GitHub?

简单的说,在GitHub上面,你可以提交你自己写的代码(发微博)、关注(粉)某人、关注(赞)某个项目、添加评论、Fork(转发)一个项目来自己修改,这些功能和微博都是一样的,只是将我们的吐槽换成了由各种编程语言写的代码。我们平时见到的大部分开源代码也都是挂在上面的。

最近比较火的996icu项目我们说他有10多万的Star,就是说由10W+的人关注了这个项目。

漫话:如何给女朋友解释什么是Git和GitHub?

漫话:如何给女朋友解释什么是Git和GitHub?

GitHub上那些奇葩"项目"

Dress - 女装大佬聚集地

有129名贡献者在这个名为Dress的项目里集结,上传了数千张女装照,收获了8000余颗星。

漫话:如何给女朋友解释什么是Git和GitHub?

你敢相信这是个码农?

地址:https://github.com/komeiji-satori/Dress

Thanos - 灭霸命令

Thanos.sh是一个开源的个灭霸命令,可随机删除电脑上一半文件。

漫话:如何给女朋友解释什么是Git和GitHub?

地址:https://github.com/hotvulcan/Thanos.sh

nocode - 一行代码都没有

这是一个Issue比项目更精彩的项目,项目中一行代码都没有,Issue中各种装逼。

漫话:如何给女朋友解释什么是Git和GitHub?

想问下,Star这个项目的2.7万人是有多无聊???

地址:https://github.com/kelseyhightower/nocode

programmer-job-blacklist 码农找工作黑名单

地址:https://github.com/shengxinjing/programmer-job-blacklist

hangzhou_house_knowledge 杭州买房攻略

地址:https://github.com/houshanren/hangzhou_house_knowledge

howmanypeoplearearound 通过 Wi-Fi 信号估计附近有多少人

地址:https://github.com/schollz/howmanypeoplearearound

漫话:如何给女朋友解释什么是Git和GitHub?

漫话:如何给女朋友解释什么是Git和GitHub?

参考资料:

https://git-scm.com/book/zh/v1/

https://www.jianshu.com/p/b2ad5d9daa23

https://www.zhihu.com/question/23498424


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Convergence Culture

Convergence Culture

Henry Jenkins / NYU Press / 2006-08-01 / USD 30.00

"Convergence Culture" maps a new territory: where old and new media intersect, where grassroots and corporate media collide, where the power of the media producer, and the power of the consumer intera......一起来看看 《Convergence Culture》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具