级别
-- sysyem 这台操作系统所有项目都用这个配置
-- global 当前用户使用这个配置
啥都不写 当前项目使用这个配置
$ git config --global user.name “ycp”
$ git config --global user.email 123@qq.com
检查配置:git config --list
区域
工作区:本地代码
暂存区:每一次修改都暂存到这里
版本库: 暂存到一定量提交的地方
对象
git对象:
1(key:val)组成的键值对(key是val对应的hash)
2 操作的是文件内容快照,保存的是值,没法代表版本
3 直接对数据版本库进行操作 不涉及暂存区
树对象:代表项目的一次次版本
1创建暂存区
git update-index -add -cacheinfo 文件模式 hash 文件名
文件模式:100644 普通文件 100755 可执行文件 120000符合链接
-add 并不在暂存区 首次需要
-cacheinfo 要将添加的文件置于git数据库中,而不是位于当前目录下.
2查看暂存区
git ls-files -s
3生成暂存区快照放入版本库
git write-tree
提交对象
通过commit-tree命令创建一个提交对象,为此需要指定一个树对象的hash值,以及该提交的福提交对象(如果有额话,第一次将暂存区做快照就没有父对象)
1 创建提交对象
echo ‘first commit’ | git commit-tree d8329f(hash)
返回哈希、、
2 查看
git cat-file -p fd4c3(hash)
3 指定父提交对象
echo ‘second commit’ | git commit-tree o1553b(tree的hash) -p fdf4fc4(提交对象的hash)
1 向数据库写入数据
echo ‘text context’ | git hash-object -w --stdin
-w 指示hash-object 命令存储数据对象; 不指定则返回对应的键值(加就存数据库 不加就只返回键值hash)
–stdin 指示命令从标准输入读取内容。 不指定则需要给存储文件的路径(‘text context’ )
2 获取内容
gti cat-file -p 键值hash
初始化仓库
找到文件目录 打开git Bash Here
输入 git init
打开查询隐藏文件 出现.git文件(git仓库 版本库)
git目录详解
hook:钩子,类似js事件(类似提交代码前后做一些事件之类的操作)
info:排除文件 ,哪些文件不需要管理的放这里
logsL使用产生日志
objeces:目录存储所有数据内容
refs:分支提交对象的指针
config:配置
description:仓库描述信息
HEAD:指示目前被检出的分支
index:文件保存暂存区