Git
Git的特点:
- Git存储的是文件快照, 即整个文件内容, 并保存指向快照的索引
- 分布式
原理
这个之前面试实习的时候被问到过, 搞懂基本原理还是很重要的
Git的目录结构在执行git init
后文件夹下的.git
目录
子目录名 | 简要描述 |
---|---|
branches | Git项目分之信息 |
condig | Git项目配置信息 |
description | Git项目描述信息 |
HEAD | 指向Git项目当前分支的头指针 |
hooks | 默认的hooks脚本, 指Git项目要忽略的文件 |
objects | 数据对象, 有: commit, trees, blobs, tags |
refs | 指向所有分支的指针 |
快照原理
Git通过对文件进行SHA-1
计算作为文件的内容生成一个40位的Hash值, Hash值相同, 则文件内容相同
存储区
git的四个存储区
- 工作区
- 暂存区
- 本地仓库
- 远程仓库
- git add file 就是把文件添加到暂存区
- git commit -m "说明" 提交更改, 就是把暂存区的所有内容提交到本地仓库, 即当前分支, git会自动创建一个master分支
暂存区的好处:
- 能够实现部分提交
- 为了不在工作区创建状态文件, 污染工作区
- 暂存区记录了文件的的修改时间, 提高文件的比较效率
分支
git速度比较快的原因是分支就是一个指向Commit的指针, 每次提交, 只需要移动这个指针就行了