说明

以下皆为.git/ 目录下的文件

1 ORIG_HEAD

远程仓库 当前引用

在git本地仓库根目录 运行:

cat .git/ORIG_HEAD
  • 1

显示

88e6fb86f5317bdfd2e8a78899334e9f0ba16987

  • 1
  • 2

如图:

在这里插入图片描述

2 HEAD

本地仓库 当前引用

 文件内容:refs/heads/<branchName>
  • 1

在git本地仓库根目录 运行:

cat .git/HEAD
  • 1

显示

ref: refs/heads/master

  • 1
  • 2

3 refs/heads/branchName

本地仓库 当前分支

在git本地仓库根目录 运行:

cat .git/refs/heads/master
  • 1

显示

3396b04ee5343498d8c2f457d14d3aee36239c6f

  • 1
  • 2

这是 当前分支最后一次commitId

2 和 3 的关系如图:

在这里插入图片描述

4 refs/remotes/repertoryName/HEAD

远程仓库当前分支

在git本地仓库根目录 运行:

cat .git/refs/remotes/origin/HEAD
  • 1

显示

ref: refs/remotes/origin/master

  • 1
  • 2

5 refs/remotes/repertoryName/remoteBranchName

远程仓库对应分支最后一次commit

在git本地仓库根目录 运行:

cat .git/refs/remotes/origin/master
  • 1

显示

581ba1436ebaa54a7f5d0f1db8cc4da0ca72127e

  • 1
  • 2

这是远程仓库当前分支最后一次commitId

4 和 5 的关系如图:

在这里插入图片描述

6 logs/refs/heads/branchName

本地仓库对应分支所有操作

在git本地仓库根目录 运行:

cat .git/logs/refs/heads/master 

  • 1
  • 2

显示

0000000000000000000000000000000000000000 88e6fb86f5317bdfd2e8a78899334e9f0ba16987 author <author@youxiang.com> 1537330001 +0800  clone: from https://github.com/google/guava.git

88e6fb86f5317bdfd2e8a78899334e9f0ba16987 581ba1436ebaa54a7f5d0f1db8cc4da0ca72127e author <author@youxiang.com> 1538568357 +0800 pull: Fast-forward

  • 1
  • 2
  • 3

本地master分支的两次操作

1 clone 项目

commitId(0000000000000000000000000000000000000000) ——> commitId(88e6fb86f5317bdfd2e8a78899334e9f0ba16987)
  • 1

2 git pull: Fast-forward

commitId(88e6fb86f5317bdfd2e8a78899334e9f0ba16987) ——> commitId(581ba1436ebaa54a7f5d0f1db8cc4da0ca72127e)
  • 1

7 logs/refs/heads/repertoryName/branchName

远程仓库对应分支所有操作

在git本地仓库根目录 运行:

cat .git/logs/refs/remotes/origin/master
  • 1

显示

88e6fb86f5317bdfd2e8a78899334e9f0ba16987 581ba1436ebaa54a7f5d0f1db8cc4da0ca72127e songyuequan <songyuequangit@163.com> 1538568357 +0800  pull: fast-forward
  • 1

同上

8 refs/tags/tagName

文件内容:tag所在的commitID

在git本地仓库根目录 运行:

cat  .git/refs/tags/Release1.0 
  • 1

显示

72014f48f489e1e43519212de1bd9f78c3755a4c
  • 1

9 packed-refs

clone仓库时所有的引用

10 COMMIT_EDITMSG

本地最后一个提交的信息

11 objects目录

所有文件对象

具体详情请看 这篇翻译文章

https://blog.csdn.net/songyuequan/article/details/85862415

12 info

待研究

13 index

Git暂存区原理

14 hooks

shell脚本

                                </div>