总第92篇
在接下来的若干篇文章中,我将根据自己的工作经验,详细梳理总结一下分布式版本控制系统Git
的使用。对于一个开发工者,用好Git
可以大大提升工作效率,也可以让自己代码的海洋里更加春风得意。通过学习这个专栏,你完全可以从一个Git
小白成为一个顶级大神,一起加油吧~~~
1.分布式版本控制系统
首先我们就当明白版本控制系统的概念,它是一种记录一个或若干个文件内容变化,以便将来可以查阅特定版本修订情况的系统。它一般分为三种:本地版本控制系统、集中式版本控制系统和分布式版本控制系统。这三种版本是依次迭代改进的。
- 本地版本控制系统。这个其实我们现在也用的很多,比如你自己电脑上的某个文件夹,在修改前你会备份一下,并改名备注一个时间标记,以防止修改错了,后面还可以通过对比知道自己修改了哪些地方。这种方式的好处是操作简单,但是特别容易出错,有时可能会混淆各个版本的文件。为了解决这种问题,大多采用数据库来记录文件的修改,主要代表是
RCS
系统; - 集中式版本控制系统。这种版本控制系统主要满足不同系统上的开发者协同工作而产生的。它将所有文件的修改保存在一个集中的服务器上,各个协同开发者都可以通过客户端连接到服务器,获取最新的文件或提交修改,如下图所示。这种系统可以让开发者很好的协同工作,管理员也可以很轻松地分配开发者的权限,但是其缺点也很明显,即服务器的单点故障,这类系统主要的代表是
CVS
、Subversion
;
![v2-d080b51ba549569715d38ea94ef6e091_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/983dc71efefaabbeef656ace55c2b771.png)
- 分布式版本控制系统。分布式版本控制系统正是解决集中式版本控制系统的缺点而出现的。这种系统中的各个协作客户端会从服务器镜像完整的代码,即每个客户端都对完整代码有一个备份,这样即使服务器出现故障,也可以从任何一个本地仓库中恢复代码,如下图所示。这种系统是目前协同开发工作使用最广泛的,主要代表有
Git
、Mercurial
。
![v2-87420a52e98afee6c3aa6ec6226da0c6_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/6c016f298c3c80f1ad21b96b958de170.png)
2.Git
系统
Git
是一个开源的分布式版本控制系统, 这也就使得系统中的大部分操作只需要访问本地文件和资源,即在你工作时可以不用联网,效率更高,速度也更快。
Git
与集中式版本控制系统的主要差别在于系统对待数据的方式。集中式版本控制系统以文件变更列表的方式存储信息,即是基于差异的版本控制;而分布式版本控制系统Git
是将数据看作是对小型文件的一系列快照,每当提交更新时,系统都会对当时全部的文件创建一个快照并保存这个快照的索引。
Git
系统对用户来说是非常安全的,这主要表现在两个方面:
Git
几乎只向数据库中添加数据,不易导致数据丢失或把文件弄乱;Git
中的所有数据在存储前都会计算校验和,通过校验和来引用,这就确保了在传送过程中不会丢失或损坏信息。Git
中计算校验和的机制称为SHA-1
哈希,它是由40
个十六进制字符组成的字符串。Git
数据库中保存的信息都是以文件内容的哈希值来索引的,而不是文件名。
在Git
系统中,文件有三种可能的状态:已修改(modified)、已暂存(staged)、已提交(committed)。
- 已修改:表示修改了文件还没有保存到数据库中;
- 已暂存:表示将修改的文件添加到了暂存区,等候被提交;
- 已提交:表示数据已经安全地保存到了本地数据库中;
这三种文件状态对应着三个区域:工作区、暂存区、Git
目录。工作区是对项目的某个版本独立提取出来的内容, 放在磁盘上供你修改;暂存区是一个文件,保存了下次将要提交的文件列表信息,即Git
仓库中的索引;Git
目录是系统用来保存项目的元数据和对象数据库的仓库,从其它计算机克隆数据即是复制这里的数据。
总起来说,Git
系统的工作流程可归结如下:
- 在工作区中修改文件;
- 将待提交的修改添加到暂存区;
- 提交更新,找到暂存区的文件,将快照永久存储到
Git
目录;
使用Git
系统协同工作的开发者的工作流程如下图所示:
![v2-f0cb06dd522366e75e4a38ae9b3782ab_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/817e3e2d5509ec6b860b30f462e0f7ef.jpeg)
3.Git
系统的安装
直接点击进入官网 ,根据自己的系统选择对应的版本下载,按官方说明安装即可。
这里选择安装Windows
版本,按默认设置安装完成后,进入cmd
窗口, 输入git --version
,若能正确显示git
的版本信息,说明安装成功并且环境变量设置成功,如下图所示:
![v2-d7a31a44d6640f14ffe59c63268cf559_b.png](https://i-blog.csdnimg.cn/blog_migrate/d96f4bf9c96561b37592bc9e22673dfe.png)
并且鼠标右键的菜单中会显示对应的两项,如下图所示:
![v2-1434d09288bdd43c48a44ba5fa4bacc6_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/d0960c8a78a8936babf28629512c94f4.png)
4.Git
的初次配置方式
在计算机上安装完成Git
后,可以对其进行环境配置。你只需要配置一次,求不你更新时也会保留配置信息,可以通过命令git config
来查看配置信息。
在Linux
系统中,关于Git
的配置文件会存储在三个不同的位置:
/etc/gitconfig
文件:这是系统为每个用户的仓库进行的通用配置,可以用git config --system
选项来查看;~/.gitconfig
文件: 这是针对当前用户的仓库配置,可以用git config --global
选项查看;.git/config
文件:这是针对当前仓库的配置,可以用git config --local
选项查看。
各个配置文件服从”就近原则“,一个级别会覆盖上一个级别的配置。
在Windows
系统中,Git
会查找$HOME
目录(一般情况是C:/Users/$USER
)的.gitconfig
文件,也会查找Git
安装目录下的/etc/gitconfig
文件。在你的仓库中,你可以运行git config --list --show-origin
来查看所有的git
配置文件。
设置用户信息
在我们安装完成git
后,可以设置全局的用户名
和邮件
,这样文件在后面的提交,命令如下:
git config --global user.name "wusanlang"
git config --global user.email "wusanlang@zhihu.com"
若后面你想针对某个项目设置不同的用户名和邮件地址,可以直接在此项目下运行不带--global
参数的命令即可。
设置文本编辑器
若未设置文本编辑器,Git
将会使用操作系统默认的文本编辑器。例如,在Windows
系统下面设置默认的编辑器为Notepad++
的命令如下:
git config --global core.editor "C:/AbsolutePath/notepad++.exe"
5.获取帮助信息
在你使用Git
时需要查寻帮助手册时,可以用下面三种方式:
git help config
git config --help
man git -config
本文到此结束!
如果对你有帮助,请随手 点个赞 或 点喜欢!
=======================================================
欢迎【关注作者、私信作者】。我们一起交流一起进步。
=======================================================