Git 的完整性
- Git 中所有数据在存储前都计算校验和,然后以校验和来引用。这个功能建构在 Git 底层。
- Git 用以计算校验和的机制叫做 SHA-1 散列(hash,哈希)。 这是一个由 40 个十六进制字符(0-9 和 a-f)组成字符串,基于 Git 中文件的内容或目录结构计算出来。
例如:24b9da6552252987aa493b52f8696cd6d3b00373
- Git 数据库中保存的信息都是以文件内容的哈希值来索引
Git 一般只添加数据
你执行的 Git 操作,几乎只往 Git 数据库中增加数据。 很难让 Git 执行任何不可逆操作,或者让它以任何方式清除数据。
Git 有三种状态
- committed:已提交表示数据已经安全的保存在本地数据库中
- modified:已修改表示修改了文件,但还没保存到数据库中
- staged:已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
Git项目的三个工作区域
- 工作目录:工作目录是对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
- 暂存区域:暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。 有时候也被称作`‘索引’’,不过一般说法还是叫暂存区域。
- Git 仓库:Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
初次运行 Git 前的配置
Git 自带一个 git config
的工具来帮助设置控制 Git 外观和行为的配置变量。 这些变量存储在三个不同的位置:
/etc/gitconfig
文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有--system
选项的git config
时,它会从此文件读写配置变量。~/.gitconfig
或~/.config/git/config
文件:只针对当前用户。 可以传递--global
选项让 Git 读写此文件。- 当前使用仓库的 Git 目录中的 config 文件(就是
.git/config
):针对该仓库。
每一个级别覆盖上一级别的配置,所以.git/config
的配置变量会覆盖/etc/gitconfig
中的配置变量。
在 Windows 系统中,Git 会查找HOME
目录下(一般情况下是C:\Users\$USER
)的.gitconfig
文件。 Git 同样也会寻找/etc/gitconfig
文件,但只限于 MSys 的根目录下,即安装 Git 时所选的目标位置。
配置文件所在路径
一句话总结:local的在.git/config里面;global的在个人home目录下的.gitconfig里面;system应该在git安装目录的下
用户信息
当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中:
添加配置
1 | git config [--local | --global | --system] user.name 'Your name'(Win系统下双引号而不是单引号) |
查看配置
1 | git config --list [--local | --global | --system] |
参数区别
1 | git config --local ##只对某个仓库有效,切换到另外一个仓库失效 |
这个三个级别的优先级:local
> global
> system