这是我参与「第四届青训营 」笔记创作活动的的第12天,今天主要记录的内容是Git的版本控制.
一、文章内容
git是什么?
为什么要做git版本控制?
git中大三区域是什么?
git创建、生成版本
git版本控制(回滚)
二、git须知
git是什么?
答案:git其实就是一个具有分布式且有版本控制的软件,所以git的三大特点是:分布式、版本控制、是个软件.首次接触版本控制的同学可能有疑惑,什么是版本控制?---举个例子“当你写毕业论文的时候,你收到指导老师给你的题目,你开始查阅资料,幸幸苦苦写了第一个版本叫xxx的毕业论文,这个时候的论文属于第一版本我们暂且称为v1,当你的老师看了你的论文,发现某个地方还需要扩展一下,可以加点内容,于是你又开始查资料,找文献,写好了论文,题目叫xxx的毕业论文2,此时的论文为第二版,这个时候我们可以称为v2,这样就是不同的版本了.当你的老师说我要看你第一版的论文,这个时候你就需要找到v1,然后发给你的老师,这个小demo就可以清楚的诠释了什么是版本控制.”当然写论文的时候可能要写很多版本,v1....v10也有可能.如图1是git的组成图.
graph LR
C[git]
C --> D[分布式]
C --> E[版本控制]
C --> F[软件]
图1 git组成框架
名词解释: 分布式:可以理解为git远程有一个服务器,你在公司和在家是俩太不同电脑,但是你都想连接远程仓库,俩太电脑都链接好了,git远程的所以版本都在你俩太台电脑里,俩个电脑有所有的版本,分布在俩个电脑里.
版本控制:就是上文论文的demo案例.
软件:比如电脑里安装的软件,抖音pc版....
为什么要使用版本控制?
上面说到,假设你不使用版本控制你自己你电脑里可能会有10个文件夹,名字是v1---v10,亦或者是一个文件夹是里有10个文件,名字是最终版本、最最终版、最终版本111、最终版本222,快说你是不是也干过这样的事情,的确我在没有学习git版本控制之前确实有过这样的经历,文件杂乱无章,想要恢复到某一个阶段的文件属实困难,为了解决这样的问题,在程序员领域发明了一个软件就叫git版本控制.
版本控制的发展
graph LR
文件无厘头命名 --第一阶段--> N个文件合并为1个 --第二阶段--> 集中式控制 --第三阶段--> 分布式
图2 版本控制发展
其中集中式控制和分布式尤为重要,现在使用的git就是分布式的. ### git中三大区域 git的三大区域分别是:**工作区 缓冲区 版本库**.如果下面的图看不懂,没关系看完实战部分返回来再看,也许你就会豁然开朗了,即使还不会,欢迎浏览评论. 如图2为git的三大工作区,只有了解的git的三大工作区,使用git才不会死记硬背.图3 git的三大区域
工作区还可以细分为:变化和为变化,只要是变化的文件都会被工作区发现,通过git add . 即可将变化的文件都统一放到暂存区 ,通过git commit 将暂存区域的文件生成一个版本,第一次生成就可以称之为v1以此类推,所有提交的版本都存储在了版本库里.
三、实战部分
安装git
这一部分,大家可以直接去百度git,然后下载一个,无脑安装即可,windows无脑安装,linux也可无脑,mac可以用命令行,我没有mac我就不演示了,不过应该也有界面版,大家去网上找找安装包,这里我以window为例安装.
图4 git安装包打开
图5 路径选择
图6 参数选择
然后无脑选择下一步,等待安装即可. 上诉步骤一直NEXT. 安装好在任何文件夹里右键会出现这个说明安装oK!!!
图7 菜单查看安装状态
版本控制---实战开始
1.这一步在你电脑里随便找个路径新建个文件夹,然后右键,在弹出的菜单选择git bash here ,然后自动打开bash窗口,如图8所示.
图8 git bash窗口
2.在命令行输入git init,这是什么意思呢?答案:告诉git当前文件被git你管理了,因为我是管理员我有权限给git,命令输入后当前文件会生成一个.git的吟隐藏文件夹,如图9所示,有些读者可能看不到,那是因为系统出于安全考虑,默认隐藏看不见,可以根据图10操作一下就可以看到了,.git文件我们不管,git自动生成.并不影响我们使用git.
图9 .git隐藏文件
图10 解决隐藏文件夹
3.配置个人信息需要俩行代码:一个是username,一个是email. git config user.name 'stu'
git config user.email 'test@cc.com'
正常输入命令行即可成. 4.正儿八经的命令来了.当然再次之前大家在该文件夹下新建俩个文件,然后跟着我一起操作学习.在有文件的情况下输入git status ,发现有红色文件名被标注出来了,如图11所示,这是什么意思呢? 答案:这是在工作区git发现这俩个文件发生了变化,git并没有掌握该文件;但是我们想让git管理文件夹,那如何让git掌握这俩个文件呢?继续在命令行敲入 git add . 这样就将该文件夹下的所有未被掌握的文件都统统掌握了,我们接着输入 git status,如图12所示,我们看到文件名没有红色了,都变绿了,并且输出了掌握的文件名..这个过程跟上文git三大区域中的第一个箭头 git add . 对应起来了.
图11 红色文件名red file name
图12 文件名变绿了
5.变绿之后,现在所有文件处于暂存区,还没有版本提交,版本提交需要使用
git commit -m '第一次提交',语法介绍:-m是参数双引号里的内容是提交的message info ,也就是本次版本生成提交附带的信息.如图13所示,又变白了.
图13 生成版本
上述过程我们就将一个小工程进行了版本生成,还没完,继续.修改文件在提交.
6.新增一个文件 idnex22222.html,如图14所示,然后按照上述步骤输入以下命令,让git管理文件然后提交暂存区,然后生成版本.如图15所示.
git add .
git commit -m '第二次提交'
图14 新增文件
图15 新版本上传
7.既然新版本也有了,秃然你想让你的东西回到第一版怎么办???正真的版本控制来了,首先输入git log ,如图16我们发现俩次提交的信息,我们现在要恢复到第一次提交的状态怎么办?我们复制第一次提交信息里的commit后面那一串东西,然后输入git reset 回车即可,你就会发现文件夹恢复到第一次提交的时候了,如图17所示.
图16 提交俩次的信息
图17 恢复到第一次提交的页面
上述过程从git的初始化到三大区域从左到右切换以及版本控制统统实现了一遍.
四、参考文献
哔哩哔哩视频
其他博客
五、总结
今天主要介绍了git版本控制的小知识以及一些命令:
- git inti
- git add .
- git commit -m 'message'
- git log
- git reset 如果读完后觉得有什么不懂的地方欢迎留言.