git其实是把代码打成一个包,切换分支就是把对应分支的代码从包里解压到工作区。工作区就是我们看到的项目目录,日常就是对工作区操作,代码改好了就提交到暂存区进行备份,再推导远程仓库再备份一份。
1. .git目录:记录所有git操作
HEAD 记录当前项目所在的分支
beanches 分支目录
config 配置文件
description 描述文件
hooks 钩子目录
info 全局排除
objects 使用对象存放的所有数据
refs 存放指向数据提交对象的指针
2. 工作区(.git和.gittignore外的所有文件):当前选择版本库中提取出来可以使用或修改的文件
3. 暂存区:未提交的所有修改文件存放区域(保存下次将要提交的文件列表信息的文件)