前言

以前作为一个编程小白,只是听到过GitHub, 只知道是一个有很多开源项目的地方,但实际上也不太清楚到底可以干嘛。然而自从入坑了撸代码,由于为了部署我的博客网站,更好地管理和操作代码,第一次正式接触到了Git以及GitHub。为了更好地记录学习过程,特撰写这一系列Git的入门教程笔记。

 

解决的痛点

Git的诞生是因为Linux之父为了开源托管Linux庞大的代码库而花“整整”两周所写的一个管理系统,大牛是什么样的,大家自行脑补,详情可以百度谷歌。

Git作为一个版本控制软件,这类系统软件解决了工程师们在开发过程中,防止因为过多的版本迭代和代码修改,而造成的管理混乱。

拿我们日常用word来创作的情景来举个栗子,我们在写文稿的时候,不可能一下笔就能一口气从头写到尾,一字不差的完成内心的构想,对吧。(你要说你可以,我王境泽就从这跳下去......吃个饭)。写完后,一检查,难免会出现差漏,这时你想删掉某些内容或者某个段落,然后又怕删错了待会找不回来,就备份了一个原稿,然后经过一通乱改,就又存存存。。。这时候估计你的桌面就像如此:

 

 

这时候,如此多的修改和备份就造成了过于混乱的界面,到时候想找到某处的修改记录,估计你想想都小头爸爸的儿子。而且如果需要多人协作,你还要把你的文稿逐一拷贝,甚是麻烦,这其实都是程序猿在开发中会遇到的一个棘手问题。

而类似于Git的这种版本控制系统的诞生,就很好的额解决了这一类难题。它可以系统的记录每一次开发过程中的更改记录和版本历史以及都是谁做出的修改都能详细记录。就像下图一样。这样就能大大的提升开发的效率!

 

集中式vs分布式

按照维基百科的解释:

Git是一个分布式版本控制软件

英文叫Version Control System. 为了更好地理解分布式,那就不得不提另外一种曾经流行的管理模式:集中式

集中式的版本控制系统就是把代码集中统一存放到一个中央服务器,不论是谁要做什么事,都需要去这个中央服务器把最新的代码版本扒拉下来干活,干完活以后,便又要再一次推送给中央服务器,表面上看好像没什么大不了,但实际上这中模式有一种通病,便是一定要联网才能工作。

如果处于局域网也许会好些,但使用互联网,难免避免不了网速的问题。其次,一旦当中央服务器挂了,就意味着代码库挂了,那就代表之前的努力都付诸东流了。

 

 

相对的,分布式就可以更好地解决这个问题,分布式版本管理系统,并不需要这个所谓的中央服务器,每个人各自的电脑里面都有一个完整的代码库,而且及时未能联网,你也依旧能愉快的工作,等完成了任务,待到有网之时,再同步到远程服务器即可。

虽然说分布式的版本控制系统,不需要要一个明确的中央服务器,但一般在实际的开发过程中,都会有这么一个东西,但它也仅仅只是扮演同步代码的角色,而GitHub就是扮演着这个角色。因为很少会在两人电脑间推送版本的修改。要注意的一点,与集中式不同的是,哪怕没有这个“中央服务器”,大家也还是可以一样的干活,只不过彼此交换的各自的修改内容会不大方便。

 

 

不过,Git作为分布式版本控制系统所带来的的好处可远远不止联不联网这么简单的问题,我认为它最无敌的一点是其拥有强大的分支管理功能!

简单的讲,正是因为其简单,便捷的分支功能,才能让程序猿们成功的实现团队分工合作,彼此互不干扰,从而提高效率。有机会在之后细讲(挖坑中)。下面先贴上一张应该说是最标准的分支模型图了:
 

 

GitHub

简单介绍了Git,相信大家都有了一些初步的认识,那现在就再简单介绍下何为GitHub。刚刚有提到一下,GitHub扮演着托管Git代码的“中央服务器”角色。的确,这其实就已经很好诠释了它的身份。Git是一个软件,一个管理系统,而GitHub就是一个网站,一个基于Git而诞生的文件托管网站(不一定就是放代码的,也有人备份个人文件资料)。所以也就解释了开头为什么GitHub上有这么多开源项目的原因了。

 

推荐参考:

Git教程 - 廖雪峰的官方网站

猴子都能懂的GIT入门 | 贝格乐(Backlog)

资源:

Git-cheat-sheet

Git-branch-model

延伸阅读
  1. 上一篇: Linux魅力无限
  2. 下一篇: 多进程 vs 多线程 + python 多线程爬虫(图片)效率提升

发表评论

您尚未登录,登录后方可评论~~
登陆 or 注册

评论列表

暂无评论哦~~