各位客官您里边请,这是小二为您带来的一道新菜:Git 。
想必客官您对这道菜一定不陌生,在别地儿也应该吃了很多次。
但在小二这,肯定是头一次,希望能给您带来不一样的口感。
在这里表明一下我的个人想法
1、文章尽可能以我初学时的视角,来分享;
2、配合图片、动图等,尽可能的做到通俗易懂,便于理解;
3、如有错误,请多指教,能力有限,还望各位客官海涵!
0 小二絮叨
还没有真正使用 Git 的时候,就听身边的人在讨论。
最让我印象深刻的,就是 GitHub 添加本地 SSH 密钥的问题,看他们讨论的样子,觉得哇,好麻烦呢!
这样上手难度岂不是很大?
直到后来写文章的图床要用到 Git ,才开始慢慢摸索。
现在想想多摸索摸索还是有用的,最起码印象更加深刻了。
本着分享知识的想法,总结自己的学习过程,希望能帮到您💖💖💖
1 Git是什么?
老生常谈的问题了,先给您奉上一些权威链接,然后再奉上我的理解。
1、Git 官网(https://git-scm.com/)
2、Git 官网帮助文档(内含视频教程)(https://git-scm.com/doc)
3、廖雪峰老师的 Git 教程(https://www.liaoxuefeng.com/wiki/896043488029600)
(廖老师 Git 首页这篇文章,阅读量高达 300 亿,太强了🐂🐂🐂)
最近从彭东老师那里,学来一个思想,很有感触,分享给您:
对于不熟悉的概念,不要纠结于名字本身的含义,而是要去看他的特点是什么?能用来做什么?
那就从这个角度,思考一下。
不管 “Git” 是什么,来看看他的特点:版本控制、分布式…,能用来进行代码修改管理、文件修改管理…
想象一下,如果没有版本管理软件,我的文档修改应该是这样的
如果用在代码上面呢?简直无法想象。
那我认为的 Git ,就是一个版本管理工具,可以让我看到历史修改记录,可以进行任意的版本操作,可以多人协作等等。
另外关于 Git 的诞生,参考廖老师的介绍,还是一段趣事呢,转载内容如下:
转载自廖雪峰老师官网,如有侵权,请联系我删除,谢谢您!链接👉👉👉:https://www.liaoxuefeng.com/wiki/896043488029600/896202815778784
很多人都知道,Linus在1991年创建了开源的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公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:
Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。
Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。
历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。
2 初次见面
小二今天是入职第一天,与张三、李四、王五等成了同事,大家都很开心。
既然入职了,肯定要先做一个自我介绍呀,下面这位就是 小二本二
当然不能忘了介绍小二的同事呀,这位是罗翔老师口中的 XXXX 张三
对了,这位是技术大牛 李四
这位是性格活泼,技术与小二对比,不(gao)相(chu)上(yi)下(jie)的 王五
来看一看强大的开发服务器(凭空捏造🤷🤷🤷)
3 拨云见日
知道了 Git 之后,再来看看这三位 GitHub
、GitLab
、Gitee
是哪路神仙?
可以很确定的一点是:这三位都是基于 Git
作为版本管理工具的。
GitHub
是一个软件托管平台,也被称为 全球最大同性交友网站 ,目前在 微软 旗下。
官网链接:https://github.com/
百度百科:https://baike.baidu.com/item/Github/10145341?fr=aladdin
Gitee
也是一个软件托管平台,目前属于 开源中国 ,还有一个响当当的名字:码云 。
官网链接:https://gitee.com/
百度百科:https://baike.baidu.com/item/Gitee/56133127?fr=aladdin
这两位对我们来说,代码全部是存放在 云端 服务器上。
GitLab
我理解是一个工具 / 软件,一般部署在私有(本地)服务器上,同样可以提供 Web 访问界面。
官网链接:https://about.gitlab.com/
百度百科:https://baike.baidu.com/item/gitlab/3059600?fr=aladdin
一般小二会和同事们,在开发服务器上工作。而 GitLab 会部署在同一局域网的其他服务器上。
(PS:仅以我目前从事的嵌入式开发工作为例,简单说明😉😉😉)
4 下回分解
好了各位客官,不知您现在对这几位,了解的怎么样了?
如果有疑问 / 想法 / 建议或意见,欢迎留言或者加我微信好友沟通哦💖
下节小二将为您带来一些基本使用方法,以及基本的安装配置等,敬请期待✌✌✌