设置 Git 的配置变量,这是一次性的工作。即这些设置会在全局文件(~/.gitconfig)或系统文件 (/etc/gitconfig)中做永久的记录。
(1)告诉 Git 当前用户的姓名和邮件地址,配置的用户名和邮件地址将在版本库提交时用到。
$ git config --global user.name "Your name"
$ git config --global user.email Your_email_address
(2)设置一些 Git 别名,以便可以使用更为简洁的字命令。
$ sudo git config --system alias.st status
$ sudo git config --system alias.ci commit
$ sudo git config --system alias.co checkout
$ sudo git config --system alias.br branch
也可以运行下面的命令,只在本用户的全局配置中添加 Git 命令别名:
$ git config --global alias.st status
$ git config --global alias.ci commit
$ git config --global alias.co checkout
$ git config --global alias.br branch
(3)在 Git 命令输出中开启颜色显示。
$ git config --global color.ui true
(4)在使用git的过程中,经常会用到文本编辑器。默认情况下它使用的是vim。如果你喜欢用其他的编辑器,例如emacs,你可以这样设置:
$ git config --global core.editor "emacs"
下面就从一个空目录开始初始化版本库,将这个版本库命名为“DEMO版本库”。
首先建立一个新的工作目录,进入该目录后,执行 git init 创建版本库。
$ cd /path/to/my/workspace
$ mkdir demo
$ cd demo
$ git init
Initialized empty Git repository in /path/to/my/workspace/demo/.git/
实际上,如果 Git 的版本是 1.6.5 或更新的版本,可以在 git init 命令的后面直接输入目录名称,自动完成目录的创建。
$ cd /path/to/my/workspace
$ git init demo
Initialized empty Git repository in /path/to/my/workspace/demo/.git/
$ cd demo
这个隐藏的 .git 目录就是 Git 版本库(又叫仓库,repository)。
.git 版本库所在的目录为 /path/to/my/workspace/demo,它被称为工作区。
实际上,当在 Git 工作区的某个子目录下执行操作的时候,会在工作区目录中以此向上递归查找 .git 目录,找到的 .git 目录就是工作区对应的版本库, .git 所在的目录就是工作区的根目录。
有什么办法知道 Git 版本库的位置呢?如何才能知道工作区的根目录在哪里呢?可以用 Git 的一个底层命令来实现,具体操作过程如下:
(1)在工作区建立目录 a/b/c,进入到该目录中。
$ cd /path/to/my/workspace/demo
$ mkdir -p a/b/c
$ cd /path/to/my/workspace/demo/a/b/c
(2)显示版本库 .git 目录所在的位置。
$ git rev-parse --git-dir
/path/to/my/workspace/demo/.git
(3)显示工作区根目录。
$ git rev-parse --show-toplevel
/path/to/my/workspace/demo
(4)相对于工作区根目录的相对目录。
$ git rev-parse --show-prefix
a/b/c
(5)显示从当前目录(cd)后退(up)到工作区的根的深度。
$ git rev-parse --show-cdup
../../../
Git 的三个配置文件分别是:
(1)版本库级别的配置文件 ----- (.git/config)
$ git config -e
(2)全局配置文件(用户主目录下)----- (~/.gitconfig)
$ git config -e --global
(3)系统级配置文件(/etc 目录下)----- (/etc/gitconfig)
$ git config -e --system
其中版本库级别的配置文件的优先级最高,全局配置文件次之,系统级配置文件优先级最低。这样的优先级设置可以让版本库 .git 目录下的 config 文件中的配置覆盖用户主目录下的 Git 环境配置,而用户主目录下的配置也可以覆盖系统的 Git 配置文件。
执行下面的命令,算是对本章工作成果的备份:
$ cd /path/to/my/workspace
$ git clone demo demo-step-1
Cloning into demo-step-1...
done.