1、Git是什么?
Git是一个分布式版本控制的系统。想要了解具体功能先来看看以下几个应用场景。
1、小王现在要开发一款Web应用,他坐在电脑前狂敲四个小时代码,正要结束去吃饭的时候,啪的一下电脑就蓝屏了,
小王欲哭无泪,此时小王内心无比渴望一种能帮助自己保存代码的一个仓库。
2、小王开发这款应用时遇到了一个模块被难住了,经过他不断地修改,不断地调试终于这个模块有了全新的解决办法,
但是在不断地修改过程中,代码已经被他改的乱七八糟自己都不想再看了,此时小王内心无比渴望一种能帮助自己回滚代码的工具。
3、小王经过数日的开发后,觉得太慢了,于是联系几个朋友帮忙一起开发,每天他们总是要把开发所用的资料在QQ或微信上发来发去,
这样非常的麻烦,此时小王内心无比渴望一种能够让他和朋友实时共享代码的工具。
4、经过一段时间后、小王和朋友们各自完成了自己负责的模块,他们将代码汇总在一起的时候,各种报错。原来是他们用的开发环境版本各自都不同
,各种类名变量名重复冲突,此时小王内心无比渴望一种能够帮他检测并解决冲突的工具。
5、小王开发的应用成功被买下,到了分钱的时候了,小王想要看一下具体各个模块的开发归属,却发现整个项目整合过后,
大家都没有之前的分工记录了,此时小王内心无比渴望一种能够帮他记录开发工程的工具。
以上几个场景,利用Git都能很好的解决。
2、集中式版本控制和分布式版本控制
版本控制系统分为两类:集中式版本控制和分布式版本控制
1、集中式版本控制(SVN)
集中式版本控制是将程序集中存储在中央服务器中,每个开发人员需要连接中央服务器才能获取代码,同时提交代码也需要连接中央服务器。如果中央服务器受到损坏,那会造成严重的损失。
2、分布式版本控制(Git)
分布式版本控制设置两个仓库来存放资源,一个本地仓库、一个远程仓库。本地仓库在开发人员的电脑上,无需联网也可以存放代码。远程仓库需要用到gitee、github等网站,需要联网才能将程序上传存放。这样就算远程仓库遭到破坏任意一个本地仓库都有存放远程仓库的数据。
3、Git的工作原理
- clone(克隆): 从远程仓库中克隆代码到本地仓库
- checkout (检出):从本地仓库中检出一个仓库分支然后进行修订
- add(添加): 在提交前先将代码提交到暂存区
- commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本
- fetch (抓取) : 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
- pull (拉取) : 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于 fetch+merge
- push(推送) : 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库
|