美文网首页
一个时光穿梭机——Git

一个时光穿梭机——Git

作者: 张春天 | 来源:发表于2019-11-28 22:18 被阅读0次

    不知道你有没有经历过这样一个尴尬,某一天你打算在自己电脑上找一个文件,可是却发现自己电脑上存了这个文件的很多版本,名字几乎一模一样,假如你电脑上的文件名叫:A,这时你可能看的一个目录下有很多名字类似的文件,有A+名字、A+日期、A+最后等等,你找来找去却最终也找不到这个文件的最终版本,这时的你是不是特别想拥有一个时光机,穿越到以前,看看你究竟都做了哪些变动,最终的版本究竟是那个?

    如果你去问爱因斯坦说,我能不能拥有一个时光机器,爱因斯坦或许会这样回答你,你可以试试把自己加速到光速试试看,哈哈,此刻是不是很绝望,别着急,互联网经过这么多年的发展,总是用它那神奇的方式改变我们生活的方方面面,Git的出现,就再次向我们证明,一切皆有可能。

    Git是一个“分布式版本控制系统”——是不是听起来跟你没什么关系,但无论是谁,都会因为能够使用Git而节约时间、提高效率,如果你居然有一个活跃的Github账户,那么你有可能正在经历人类史上前所未有的共同协作时代——半点都没有夸张。

    Git(以及其他版本控制系统)就是一个帮助我们管理文件版本的工具,我们只要告诉Git把哪些修改记录为一个版本,它就会照做,进而能随时根据我们的需要回到某个版本;Git还提供了一系列命令,帮助我们比较两个版本之间的差异,或者将两个不同版本合并在一起。这就是版本控制的基本能力:

    记录修改历史

    返回某个历史状态

    历史版本的查阅

    比较和合并

    想要快速掌握Git的基本技能,我们先了解一下 git 的一些最核心的基本概念和术语,

    工作目录、仓库和暂存区域

    工作目录(working directory)就是我们工作的目录,简单直白,这个目录以及下面所有的子目录和文件就是我们操作的对象,在 git 环境下,工作目录是我们实际操作的、文件系统里真正存在的对象。

    仓库(repository,经常被简称为 repo)是 git 为我们建立和维护的版本历史数据库,这个数据库躲在一个叫 .git 的隐藏目录下,通常我们不需要直接操作它,git 命令会帮助我们来操作它。

    暂存区域(staging area)则是工作目录和仓库之间的中间过渡区,有时也叫索引(index),不过我们觉得“暂存区域”的叫法更清晰易懂。当我们在工作目录里做了一些修改之后,可能只想把一部分修改作为一个版本提交到仓库里保存下来,这时候就可以选择几个修改先放到暂存区域,然后再把暂存区域里的修改提交到版本仓库。

    注意,Git 将整个工作目录视为一个整体,每一个版本对应的都是这个整体的一个快照。当然 Git 做了很多优化,并不会真的存好多份整个目录的内容,所以不用担心 Git 把硬盘都浪费了。

    有了上面对Git基本概念的认识,我们现在就可以下载并安装Git了,登录Git官网下载,无论你是window系统,还是macOS系统,抑或是linux各种发行版,都可以找到对应版本,在这里就不做赘述,重点在于如何使用,

    使用前的基本设置

    在使用之前需要对 git 进行一些基本设置。

    首先是设置你的名字和 Email,这些信息会出现在你提交的每一个版本的版本记录中(注意 git config 后面的参数带有两个横线 --):

    git config --global user.name "your name"

    git config --global user.email your_email@foo.bar

    然后是配置 git 使用的文本编辑器

    git config --global core.editor "code -w"

    可以用下面的命令来查看当前配置,可能有不少你不知道干啥的配置,没关系,现在不用管,确认刚才我们设置的三项是对的就行了:

    git config --list

    基本操作,初始化仓库:

    git init

    这个命令成功后会提示已经在当前目录下的 .git 子目录下初始化了一个空的 repo,这时候如果我们输入 ls 来查看是看不到这个 .git 目录的,因为 . 打头的目录是隐藏的,我们可以用 ls -la 来显示它(Windows PowerShell 下请用 ls -Force)。

    这个 .git 目录下就是我们的版本仓库,使用 git 的特定数据格式保存。这也就意味着,我们的工作目录已经成为一个“由 git 进行版本控制”的目录,我们在这里做的任何事情都会被 git 跟踪,也可以作为版本提交到 repo 中去。

    git status

    上面的命令将显示目前工作目录的状态,比如有没有文件被修改,这个命令对我们初学者很有用,我们应该养成习惯经常执行一下,看看在 git 的视角发生了什么。

    git add 文件名

    git add 这个命令一般用来把有变化的文件加入待提交的“暂存区域(staging area)”,但对 untracked files 它具有双重功效,先将其加入到版本管理中(从 untracked 变成 tracked),再加入 staging area。

    git commit

    这个命令会 commit 目前在 staging area 的任何文件变化到版本仓库,在实际执行前会打开文本编辑器让我们输入 commit message 也就是版本说明。

    好了,以上就是Git的基本用法,有了Git这个工具,我们可以查看文件的所有修改记录,仿佛乘坐了一辆时光机器,带着你浏览过往是所有记录,俗话说,工欲善其事必先利其器,你怎么可以少了这件兵器呢。

    相关文章

      网友评论

          本文标题:一个时光穿梭机——Git

          本文链接:https://www.haomeiwen.com/subject/yaviwctx.html