Git详解系列:Git的前世今生 什么是版本控制 本地版本控

「这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战」。

通过此篇文章你将了解到什么是版本控制,以及版本控制系统的演进历程,当然还有最重要的Git是什么,它的三个状态,以及如何安装它。

什么是版本控制

版本控制就是来记录一个或多个文件内容的变化,用来方便查阅某个版本的修改记录。

想象一种场景,你在写一篇文章,写完之后你觉得写的不好,就进行修改,修改完就产生了一个新的文件你叫它2.0版本,过了几天你再看文章发现还要修改,衍生出3.0,4.0等等,突然你又觉得之前那样写很好,你又不记得是在哪改的,这就很头疼。这时候一个可以记录每次改动变化的系统出现了,它可以自动记录每次文章的改动,还能让别人一同操作,版本控制系统就产生了。

本地版本控制系统

本地版本控制大多数都是使用数据库来记录文件每次的变更差异。

image-20211101214408671

这里面最典型的就是RCS,它会在硬盘中保持每次修改的补丁,通过所有的补丁,可以计算出各个版本的异同。

集中化版本控制系统

本地版本控制系统虽然解决了查找变更的麻烦,但是如果想多人操作同一个文件就很难实现,而集中化版本控制系统可以解决这个痛点。这里面典型的例如CVS、Subversion等。它会有一个集中的单一服务器来保存所有文件的修改版本,每当有人想修改就可以从服务器上取出最新文件然后修改后再提交到服务器。

image-20211101215023994

集中式版本控制解决了多人协作的问题,但所带来的隐患就是如果服务器故障,那么所有人都操作不了,并且因为数据存储在服务器,如果磁盘发生损坏,可能就会丢失整个变更历史。那还有更好的版本控制系统吗?接着往下看

分布式版本控制系统

分布式版本控制系统中,每个人的电脑上都是一个完整的版本库,多人协作只需要将双方各自修改的点发送给对方,通过服务器来做中间层,对各自的信息进行交换。任何一处参与协同工作的服务器挂了都不会产生太大的影响,都可以用其中一个人的电脑的本地仓库进行恢复。

image-20211101220310003

Git介绍

Git就属于分布式版本控制系统的一种,它诞生于2005年,发源于Linux开源社区。

Git和其他版本控制系统最主要的区别就在于对数据的处理,其他大部分系统都是以文件变更列表的形式存储数据,例如你更改A文件,它只会记录你这个增量差异的部分,不会再将整个文件再重新完整的记录一遍,每个版本都只记录差异。

image-20211101221057219

Git却是每次都会对当时更改的文件全量保存为一个快照,并保存这个快照的索引,当然如果你这次文件没有任何修改,那么这个新的版本就不会再存储该文件,而是保留一个链接指向之前存储的文件。

image-20211101221319182

Git三种状态

在Git中,文件状态是个非常重要的概念,不同的状态会对应不同的操作。我们就来了解一下这三种状态。

这三种状态分别为已提交,已修改,已暂存。已提交就代表数据已经保存在了本地数据库中,已修改就是文件修改了但是还没来得及保存到本地数据库,已暂存相当于对一个新文件或者修改的文件做了一个标记,将其包含在了下次提交的快照中,等到做提交操作时就会被提交。

这里我们用具体代码演示以下来加深这块的理解:

我新建了一个文件,还没有做任何操作,我们看看它现在是什么状态

image-20211101223015678

这里的untracked就代表还没有被暂存,提示我们进行add操作进行暂存

image-20211101223318774

这里文件状态变成了“Changes to be committed:”,就代表已经已经暂存了,等待被提交。这里我们先不提交,我们对这个文件做个修改,然后看看什么状态

image-20211101223528413

可以看到除了之前的“Changes to be committed:”状态,又多了一个”Changes not staged for commit:”状态,表明文件已经被修改了,但还没有放入暂存区域。现在我们先暂存,然后进行commit操作看看状态会发生什么变化

image-20211101224357119

我们的更改已经提交,提示我们push到远程分支,通过状态的变化相信你对这三种状态有了更清晰的理解,总结一句话就是当你新增或修改一个文件,进行了add操作后就变成了已暂存状态,当你对文件修改但还没add,那就是已修改状态,add后又进行了commit操作那就变成了已提交状态。

安装Git

在Linux安装Git

通过一条sudo apt-get install git就可以直接完成Git的安装,非常简单。

在Mac上安装Git

如果你正在使用Mac做开发,有两种安装Git的方法。

一是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:brew.sh/

第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。

在Windows上安装Git

在Windows上使用Git,可以从Git官网直接下载安装程序,然后按默认选项安装即可。

安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

安装完成后记得要进行下一步的设置,在命令行输入:

1
2
arduino复制代码$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%