学习软件构造时要使用git提交实验,在此记录学习过程
1.结构
.git directory :本地CMDB(配置管理数据库),也就是常说的本地库。
working directory(工作目录):本地文件系统。
Staging area(暂存区): 隔离工作目录和Git仓库。
2.原理
Object graph存储在存储库的.git目录中,它是版本之间的演化关系图,一条边B->A表征了“在版本A的基础上作出变化,形成了版本B,而每一个commit节点都指向相应的树来指向对应的版本文件。
Git每个提交都是所有文件的完整副本,使得Git在回溯到某个提交时,不会对所有文件执行差异计算还原,因此速度会非常快,只有发生了改变的文件才会进行修改,否则使用文件指针指向同一文件。
缺点:
① 只能全量整体,而不能以子目录和分支为单位进行更新、提交等操作
② 子目录和分支不能单独进行权限控制
③ 由于每个提交都是所有文件的完整副本,因此更占磁盘空间
3.基本指令
通过上图我们可以清晰的了解到对应指令在不同区域的作用关系
指令详情如下图所示