执行了git init初始化后,当前文件夹的文件都将置于git管理工具的管理与跟踪当中。这个命令会在当前目录下生成.git文件夹,如果不要git管理了,直接删除这个.git目录即可。

.git目录如下:

.git目录里的目录的作用_远程分支

  • hooks:存放一些shell脚本
  • info:包含git仓库的一些信息
  • logs:保存所有更新的引用记录。logs文件夹有refs文件夹和HEAD文件
  • .git目录里的目录的作用_文件名_02

  • (1)HEAD文件保存的是所有的操作记录,使用git reflog查询的结果就是从这个文件来的
    (2)refs文件夹中一般会有两个文件夹:
  • .git目录里的目录的作用_远程分支_03

  • heads: 存储所有本地分支的对象,每个本地分支名对应一个文件名称。这些分支文件中存储的是对应本地分支下的操作记录。使用git branch查看本地所有分支时,查询出的分支就是heads文件夹下所有文件的名称。
    **remotes:**存储所有远程分支的对象,每个远程分支对应一个文件名称。这些分支文件中存储的是对应远程分支下的操作记录。
  • objects:存放所有 git 对象,哈希值一共40位,前 2 位作为文件夹名称,后 38 位作为对象文件名
  • refs:引用,一般有三个文件夹:
  • .git目录里的目录的作用_.git_04

  • (1)heads:存储所有本地分支的对象,每个本地分支名对应一个文件名称,文件中存储了分支最近一次提交commit对应的id(是一个哈希值)。
    (2)remotes:远程仓库信息,其中\refs\remotes\origin\HEAD记录了当前分支指向的远程分支,即当前分支提交到的远程分支:
  • .git目录里的目录的作用_git_05

  • (3)tags: 发布重要版本时,用于标记此里程碑。
  • COMMIT_EDITMSG:存储着最近一次的提交信息,Git系统不会用到这个文件,只是给用户一个参考
  • config:存储当前仓库的配置信息
  • description:描述信息
  • HEAD:HEAD指针,它指向了当前分支,这个文件记录了当前分支是哪个分支
  • index:暂存区(stage),是一个二进制文件

谢谢阅读