HOME/git/

关于Git

Article Outline
TOC
Collection Outline

关于Git

关于版本控制

首先,我们都知道git是一个版本控制工具,也就是说,git是一种记录一个或若干个文件内容变化,以便查阅特定版本修改情况的工具。不仅仅是对于程序代码,实际上我们可以将git使用在任何类型的文件的版本控制。

关于git

直接记录快照

git与其他版本控制系统(如Subversion,SVN)最大的区别在与其对待数据的方式不同。SVN是以文件变更列表的方式存储信息,具体描述就是,SVN将它保存的信息看作是一组基本文件和文件随着时间逐步累积的差异。然而,git将数据看作是对仓库中文件系统的一组快照,即每次对仓库中的文件进行改变的时候,git是对当前情况下的文件作了一个快照,并保存制作的快照的索引。

本地执行

区别于集中式的版本控制系统,我们在使用git的时候,大多数的操作是在本地环境完成的。因为git会将整个项目的文正历史保存在本地,因此我们可以方便的在本地查看整个项目的历史记录并保存修改记录。

完整性

git中的所有数据在存储前都计算校验和,然后使用校验和来引用。也就是说,每次的文件修改,都会被git获取到。

三种状态

git中的文件一共有三种状态:

  • committed(已提交)
  • modified(已修改)
  • staged(已暂存)

其中,已提交表示数据已经保存在本地数据库中。已修改表示文件被修改了,但是还没有保存到数据库中。已暂存表示对一个已经修改的文件的当前版本做了标记,在下次提交的快照中会包含它们。

这三种状态也就对应了git项目的三个工作区域:git仓库、工作目录及暂存区。

  • git仓库:这里是git用来保存项目的元数据和对象数据的地方。从远程仓库克隆一个项目的时候,实质上就是克隆这一区域的内容;
  • 工作目录:这是对项目的某个版本单独提取出来的内容,这些从git仓库的数据库中提取出来的文件,在本地方便使用者修改及使用;
  • 暂存区域:暂存区域是一个文件,保存了下次将要提交的文件列表信息。

安装使用git

关于git的安装,这里不做太多介绍,在Linux系统上,各个发行版的软件仓库中都可以搜索到git。如果需要安装最新版的话,可以在官方网站:https://git-scm.com/,下载自身操作系统所需的安装文件进行安装。

配置git

安装完成后,在使用git之前,需要做些简单的操作来定制一下git环境。

使用git config命令来设置git的配置信息,这些配置信息会保存在三个地方:

  • /etc/gitconfig文件:这里保存了系统上每一个用户及他们仓库的配置信息,在使用git config命令的时候,如果带上--system选项,那么就会从这个文件中读取配置变量;
  • ~/.gitconfig~/.config/git/config文件:这里存储的是当前用户的配置信息,如果需要读取这里的信息,可以在git config,命令中加上--global选项,后面我们会看到具体用法;
  • git仓库目录下的config文件(.git/config),这里的配置信息只针对当前仓库有效。

上述的配置信息,如果有冲突的地方,则优先使用较小范围的配置文件,即.git/config文件会覆盖掉~/.gitconfig中的配置变量。

用户信息

在配置git的时候,我们首先需要设置自己的用户名及邮箱,这个配置信息会伴随着每一次提交中,并且不可修改:

git config --global user.name "<username>"
git config --global user.email "<[email protected]>"

上述命令中,使用了--global选项,也就是说用户的用户名和邮箱这两个信息是写入到了~/.gitconfig文件中,配置完成之后,用户在这台电脑上后续的git操作,都会带上这些信息。如果需要在某个项目中使用不同的用户名和邮箱,那么可以在项目路径下使用不带--globalgit config命令配置用户名和邮箱。

文本编辑器

默认情况下,git会使用操作系统中默认的文本编辑器,在大多是Linux发行版上是Vim。如果需要修改文本编辑器,可以使用git config --global core.editor emacs,这样一来,git的默认文本编辑器就换成了Emacs。

git命令别名

在使用git的时候,我们会经常用到诸如checkout等命令,通过配置,我们可以将这些命令设置一些别名进行简化,如:

git config --global alias.co checkout

通过上述配置,我们为checkout设置了别名co,然后就可以通过git co来执行原本的git checkout命令。

查看配置信息

使用git config --list可以查看当前环境下git的配置信息,当然也可以查看配置文件的内容来获取相关配置信息。