### 查看Git版本
~~~
$ git --version
~~~
### 配置Git变量
这些设置会在全局文件(用户主目录下的.gitconfig)或系统文件(如/etc/gitconfig)中做永久记录
#### 配置用户名和邮件地址:(将在版本库提交时用到,为确保提交者信息的正确性一定要设置)
~~~
$ git config --global user.name "your name"
$ git config --global user.email "your email address"
~~~
#### 配置Git别名:(以便使用更为简洁的子命令)
下面的命令使别名能被所有用户使用(需要系统管理员权限)
~~~
# git config --system alias.st status 类似的还有ci commit, co checkout, br branch
~~~
下面的命令只在本用户的全局配置中添加Git命令别名
~~~
#git config --global alias.st status
~~~
#### 开启颜色显示:
~~~
$ git config --global color.ui true
~~~
### 初始化Git版本库
首先进入工作目录(设为gitTest),然后$ git init,则创建了隐藏目录.git。也可在git init命令后直接输入目录名称以自动完成工作目录的创建
然后在gitTest文件夹下创建文件test
~~~
$ git add test 将test文件添加到版本库
~~~
需要再执行一次提交操作,需要提交说明。当Git提交时,如果不在命令行使用-m参数提供提交说明,Git会自动打开一个编辑器要求输入提交说明
~~~
$ git commit -m "说明"
~~~
输出如下内容:
~~~
[master (root-commit) 4ffa0a3] 说明
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 test
~~~
说明此次提交在master的分支上,并且是该分支的第一个提交(root-commit),提交ID为4ffa0a3
commit的参数:
--amend 对刚刚的提交进行修补
--allow-empty 允许空白提交
--reset-author 将Author的ID同步修改,也会重置AuthorDate信息
### Git的一些其他命令
#### 搜索版本库中的文件内容
~~~
$ git grep "文件内容"
~~~
#### 显示版本库.git目录所在位置
`$ git rev-parse --git-dir`
#### 显示工作区根目录
~~~
$ git rev-parse --show-toplevel
~~~
#### 显示当前目录相对于工作区根目录的相对目录
~~~
$ git rev-parse --show-prefix
~~~
#### 显示从当前目录后退到工作区的根的深度
`$ git rev-parse --show-cdup`
#### 编辑配置文件
~~~
$ git config -e 编辑版本库级别的配置文件(需要进入工作目录的根目录)
$ git config -e --global 编辑用户主目录下的全局配置文件
$ git config -e --system 编辑/etc目录下的系统级配置文件
~~~
上面三个配置文件优先级从高到低
配置文件采用了ini文件格式
~~~
$ git config <section>.<key> 读取配置文件某个配置的键值
$ git config <section>.<key> <value> 修改某个配置的键值
~~~
还可以用git config命令操作任何其他的ini文件
~~~
$ GIT_CONFIG=test.ini git config a.b.c.d "hello" 向test.ini中添加配置
$ GIT_CONFIG=test.ini git config a.b.c.d 从test.ini中读取配置
~~~
#### 查看日志
~~~
$ git log
~~~
log的参数:
--pretty=fuller 额外显示提交日期
--stat 显示每次提交的文件变更统计
Git克隆可以降低因为版本库和工作区混杂在一起而导致的版本库被破坏的风险。可以通过克隆操作在本机另外的磁盘/目录中建立Git克隆,并在工作区有新的提交时,手动或自动执行向克隆版本库的推送(git push)操作。如果使用网络协议,还可以在其他机器上建立克隆。