前言

本文是对《Git权威指南》的简单记录,如果看过原著可以绕过

PS:包括后面的Git之系列的文章都可以绕道而行

版本

git --version用来查询当前机器上的git的版本号

配置变量

git的配置变量是一次性工作,这些设置会在全局文件(用户目录下的.gitconfig)或系统文件(如/etc/gitconfig)中记录

用户名和邮件

$ git config --global user.name "smxknife"
$ git config --global user.email smxknife@qq.com

上面两条命令分别用来配置当前用户的姓名和邮件地址,这将会在版本库提交时用到

别名设置

别名是为了命令操作更爽,试想一下,输入git ci爽还是输入git commit爽,(注:如果使用的是系统管理员,那么设置的别名可以被所有人员使用)

1
2
3
4
$ 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

也可以通过以下方式,只设置当前用户的全局方式

1
2
3
4
$ git config --global alias.st status
$ git config --global alias.ci commit
$ git config --global alias.co checkout
$ git config --global alias.br branch

命令行颜色设置

$ git config --global color.ui true

初始化

git初始化命令非常简单git init

  • $ cd /git/test
  • $ git init demo

这样初始化已经做好了,在demo下会有一个.git文件,这个隐藏的.git就是Git的仓库,而/git/test/demo被称为工作区

提交内容

新建一个测试文件

1
2
$ cd /git/test/demo/
$ echo "Hello Git." > hellogit

将hellogit添加到仓库

1
2
$ git add hellogit # 此时并没有提交,这与svn是一样的,需要执行下一步commit才算提交
$ git commit -m "init hellogit file"

执行完毕之后会得到以下输出

1
2
3
[master (root-commit) ac01ff3] init hellogit file
1 file changed, 1 insertion(+)
create mode 100644 hellogit

从结果上看提交到master分支上,第一个提交为root-commit,提交ID为ac01ff3,
第二行此次修改了一个文件,包含了一行插入
第三行此次提交创建了新文件 hellogit

.git

git提供了一个非常方便的命令用来进行搜索

$ git grep "文件内容搜索"

1
2
$ git grep "Hello"
hellogit:Hello Git.

.git/index文件记录工作区文件的状态(实际上是暂存区的状态)

git命令是在工作区工作的,如果在工作区的子目录下,git会一直递归查找.git目录,如果所有的目录中递归无法找到,将会报错。那么如何定位.git的工作区的根目录呢?

$ git rev-parse --git-dir

显示工作区根目录

$ git rev-parse --show-toplevel

相对工作区根目录的相对目录

$ git rev-parse --show-prefix

显示档期目录后退到工作区根目录的深度

$ git rev-parse --show-cdup