一、本地仓库和工作区的概念:
1.1本地仓库——版本库:
- 本地仓库又称为版本库。
- 版本库是隐藏目录.git,并不是.git所在的目录。
- 版本库不属于工作区。
- 我们不能手动操作.git目录及其中的文件,这样可能会直接破坏版本库。
- stage(暂存区)在版本库中,也称为索引(Index),是一个临时区域,用于保存即将提交到版本库的更改。
- HEAD是一个指针指向master。
1.2工作区:
- .git目录所在的目录,被称为“工作区”。
- 在工作区的文件并不能直接被版本库管理。
二、使用.git管理工作区的文件:
2.1add操作:
- 将工作区修改的内容,添加到暂存区(stage)中。
- 修改包括新增、修改、删除。
- 此操作会在.git目录建立一个index文件,add的内容都会添加到index中。
2.2commit操作:
- 将暂存区的内容添加到master分支下。
- 完成commit操作后,才算将修改的内容完全放到了版本库中。
三、HEAD指针和master的关系:
- HEAD是一个指向master的指针,里面存放的是master的索引:
cat .git/HEAD
- 使用HEAD找到master的位置后,查看master的内容:
cat .git/refs/heads/master
- master里面存放的是一个字符串,该字符串和最近一次commit的commit ID相同:
- commit ID标识的是一个git对象,git对象中存放的是文件的修改信息。
git cat-file -p ID
- 可以使用以下指令查看修改的具体内容:
git cat-file -p ID