【摘】Git-从零单排 01期
前言
对于 Git 这么一个优秀的版本控制系统,网上关于 Git 的优秀文章自然成千上万,那笔者为什么还要再写这个系列的文章呢?因为,笔者在学习的过程当中发现,最好的学习方式就是‘输出’。同时,‘输出’质量的好劣,能最好的体现学习效果。当然,笔者也是非常希望,此系列文章能真正的帮助读者解决 Git 的相关的问题,就算只有一位,也算是此系列文章最大的成功。
笔者学习Git时,系统环境为 macOS Mojave v10.14.5,Git版本为 2.20.1 ,开发工具为 vscode 1.45.1 。
版本控制是什么
什么是“版本控制”?我为什么要关心它呢? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 在本书所展示的例子中,我们对保存着软件源代码的文件作版本控制,但实际上,你可以对任何类型的文件进行版本控制。
上文是摘自 的描述。很好理解,比如,你在写毕业论文时,你在写报告时,你在给老板做ppt 文件时,不可避免的需要对所写文件进行多次修改。那么,每一次修改保存后,都算是文件的一个版本。

我在没接触版本控制之前,我是这样通过复制文件,把版本信息放到文件名里,进行版本管理的。但是,这样并没有很好的解决版本控制问题,比如,修改时间不明确,版本描述信息不清楚,修改人不确定,没有备份等,最好的解决办法就是 干掉或成为甲方爸爸,让每一个文件都只要写一次 使用版本控制系统。
版本控制系统从最初的本地版本控制系统,到集中化的版本控制系统,到现在的分布式版本控制系统。 当然
Git是什么
Git 是一个分布式版本控制系统。但是它与其它分布式版本控制系统又有很大的区别,这些不一样的地方,让它成为了最受喜爱的版本控制系统之一。下面,就让我们看看它有哪些明显的优势。
Git项目有什么
有一个工作目录(Working Directory)、一个暂存区(Staging Area)、一个仓库(.git directory)。工作目录就是工作目录下 .gitignore(忽略文件)文件不包含的其它所有文件和文件夹;暂存区就是 .git/index 文件;仓库就是 .git 文件夹。与之对应的就会有三个状态:
已修改(modified) ——表示修改了文件,但还没保存到数据库中。
已暂存(staged) ——表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
已提交(committed) ——表示数据已经安全地保存在本地数据库中。
上面六个概念请稍微记忆,这将会对你之后的 Git 学习有帮助。
Git怎么安装
安装的方法太多了,到网上一搜到处都是,甚至有些地方还给你下载好了安装包。当然,笔者还是比较推荐到官网下载最新最安全的包。下载之后都是傻瓜式的安装。安装之后,在终端里输入 ,如果有版本输出,就说明安装成功了,从此你就可以用上超级好用的版本控制系统了。
Git的基本配置
当然,安装成功后,我们需要对 Git 做些基本的配置,这是为了方便我们以后使用 Git 。 就是用来帮助设置控制 Git 外观和行为的配置变量的。每台电脑上只需要配置一次,程序升级时,会保留你的配置信息,当然,你也可以在任何时候通过命令去修改配置。在终端输入
git config --global user.name '王阳明'
git config --global user.emial wangyangming@email.com
因为这个用户信息是在我们进行 Git 操作时要用的,用来识别身份的。这里的 是设置配置项的级别,对应的选择还有 ,权重是 local、global、system 依次递减,也就是说 local 配置信息会覆盖 global 的配置,global 会覆盖 system 。我们可以通过 查看电脑上的 Git 配置信息。也可以加上 选项把配置信息存储的文件位置显示出来。


补充一下, 设置的信息存放在/etc/gitconfig里, 设置的呢,存放在~/.gitconfig里, 设置的则存放在项目的 Git 仓库中的config里(.git/config)。当然,Git 的配置可以不单单是这么一点哦。后续笔者会单独对配置进行详细介绍。
后语
总结一下, Git 是一个分布式版本控制系统。它有四个与众不同的优点:直接记录快照,而非差异、近乎所有操作都是本地执行、Git 保证完整性、Git 一般只添加数据。它有三个状态:已修改(modified)、已暂存(staged)、已提交(committed),与之对应的就有了工作目录、暂存区、Git 仓库。下载安装后,记得需要使用 进行一个基本的配置,配置有三种:system、global、local。
通过这篇文章,我相信你对 Git 应该有了一个基本的认识。下一篇笔者将详细详解,初始化一个 Git 仓库与 Git 的基本使用。