0%

Git learning#day1

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 外观和行为的配置变量。 这些变量存储在三个不同的位置:

  1. /etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有 --system 选项的 git config 时,它会从此文件读写配置变量。
  2. ~/.gitconfig~/.config/git/config 文件:只针对当前用户。 可以传递 --global 选项让 Git 读写此文件。
  3. 当前使用仓库的 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
2
git config [--local | --global | --system] user.name 'Your name'(Win系统下双引号而不是单引号)
git config [--local | --global | --system] user.email 'Your email'(Win系统下双引号而不是单引号)
查看配置
1
git config --list [--local | --global | --system]
参数区别
1
2
3
git config --local ##只对某个仓库有效,切换到另外一个仓库失效
git config --global ##当前用户的所有仓库有效,工作当中最常用
git config --sysstem ##系统的所有用户,几乎不用

这个三个级别的优先级:local > global > system