Git本地仓库
每一个Git项目下都会有一个.git
目录,里面包含了整个git仓库的信息数据。我们首先来认识一下这个目录。
首先我们创建一个新的git
仓库,这个用git init
或者git init 文件夹名
命令就行了。
git init test_git
上述命令执行完以后,就会创建一个文件夹test_git
,里面有一个.git
目录,里面包含了一个初始的git
仓库的所有信息。
其中主要几个文件及目录:
config文件:保存的是当前工程的一些配置信息,包括远程仓库地址、本地分支和关联的远程分支信息、当前工程的用户名和密码(如果为当前工程配置过)等
HEAD文件:里面保存的是工程当前所在的分支
info目录:里面一般会有2个文件,exclude一般用不到,另一个文件是refs文件,里面保存的是所有分支所指向的提交(commit)列表
objects目录:
里面保存的是工程的所有元数据,包括文件的每个版本数据,每一次提交的信息等等。
objects目录里面可以分为2部分:info目录和pack目录、其他元数据。其他数据都是类似这样的:
refs目录:
这个目录保存的是分支信息和标签Tag信息,又分为3个子目录:
- remotes目录:这个目录里面是远程仓库的分支信息,一般只有一个远程仓库的话,下面就只有一个子目录,也就是
origin
,里面就是远程的分支在本地的记录 - heads目录:这个目录里面是本地的分支
- tags目录:里面是标签信息
其他的文件和目录:
logs目录:Git 会默默地记录每一次你改变 HEAD 时它的值,包括每个分支的HEAD的改变记录
hooks目录:这里面是钩子脚本
modules目录:这里面是Git子模块,Android中的AppShell相关的信息就保存在这里面
index文件:这里就是我们平时说的 暂存区 ,保存了下次将提交的文件列表信息,我们执行git add
后这里就会更新刚刚添加的文件信息
logs目录:这里面的信息实际上也很重要,里面记录了我们本地仓库中所有分支的commit提交(包括已经reset
)的信息,实际上是HEAD的变动都会记录在里面,包括分支操作和commit相关的操作