git从零开始0
git从零开始
好久没有更新博客了,sorry,每天都生活在教授的PUA下,水深火热。想着还是学点自己喜欢的东西吧。所以这篇博客他诞生了。
git是一个项目版本管理器,想必程序员或者项目管理人员,直白点说,只要接触github就得接触git吧?你难道不git clone?(滑稽.jpg)
git相关的知识内容不多也不难,然而每次要用到git的时候,却又很容易忘记。(顺便一提,我学git是为了能够在两台电脑上同步更新博客)所以接下来就让我们好好介绍一下这个程序员必须接触的版本管理神器吧!这一节中,我将对git进行一个简要的介绍。
git简介
git是一个项目版本管理器。什么是项目管理呢。来,上图!

如图所示,这就是最简单的一种版本管理方式。例如,在老板要求你写一份项目报告时,你会有一个初稿,然后你对初稿不满意,进行了修改,得到了"V2"。提交之后,老板不满意,打回修改……最后你得到了最终稿,你保留所有的文件,放在一个文件夹里,你就得到了一份稿件的文件历史,这就是项目版本管理。而这种管理方式是在本地进行的,手法也非常的单纯。
久而久之,人们发现这样的版本管理存在着巨大的缺点:
- 非常的单纯(愚蠢)!你想,一旦你电脑有一天烧了,这些项目直接消失了。
- 如果项目每一次的文件都很大呢,对于一个完整的程序项目来说,一份上G轻轻松松,如果像这样管理项目,你的硬盘可能就要爆了哟。
因此,CVS(协作版本系统)诞生了。简单来说,CVS改进的点就是应用了客户端-服务器的模式。我们可以将项目修改的版本上传到服务器,服务器在一个局限的网络中,为所有客户端提供接口,每次需要以前项目的时候,就从服务器上扒拉下来。但是,CVS同样存在着缺点,如果服务器有一天也炸了呢?同样没有办法再找回那些数据了。因此,我们需要一种不仅在服务器中保留版本,在客户端同样能够保留版本历史的版本管理工具。
git则提供了一个更加优秀的版本管理方法,让项目无论是在本地还是在云端,都可以得到很好的管控。 与云端或者远端相结合,最常见的手段就是利用github、gitee等平台。
git原理
git的工作原理非常简单,git将(本地)架构划分为三个层次:
- 工作区
- 暂存区
- 本地库
三个层级间的流可以表现为以下方式:
工作区 | –>git add–> | 暂存区 | –>git commit–> | 本地库 | |
---|---|---|---|---|---|
备注 | 写代码的地方 | 将代码提交到暂存区 | 暂存代码的区域 | 将代码保存为一个版本提交到本地库 | 递交版本的区域 |
需要注意:
- 工作区指的不是打开一个idea里面编辑代码的空间,而是代码文件存放的目录空间,比如XX文件夹内
- 工作区和暂存区内的内容(版本)都是可以删除的,但本地库中提交的版本,是不能删除的,因为每一个新版本都是基于上一个版本得到的,如果该功能被设计成能随意删除中间的一个版本,那就崩辣!
- 当然,最暴力的方法也有,就是把整个本地库都删除了(谁还不会删库跑路呢?)
你会发现,这里还少了一个内容,就是远程库。没错,以上是git在本地的工作流。如果想要将版本推送到远程库,例如github,就要使用另一个指令了。这里补充下本地库到远程库的表现。
本地库 | –>git push–> | 远程库 | |
---|---|---|---|
备注 | 本地保存历史版本的区域 | 将代码推送到远端 | 远程仓库(比如github) |
总结
在这一节,我简单讲了一下什么是git、git的工作流程,接下来,我就会讲具体的操作了,也是工作中基本的需要熟悉的操作。当然这中间还有关于 git的下载、安装、用户签名(账号密码) 的一些内容,但我觉得这些不是灵活的知识,所以就不做特别的讲解。
大家下一节再见!