.git 目录解释
John Wachira
2022年4月22日
在本文中,我们将介绍 Git 文件夹 .git
。我们将介绍 Git 创建文件夹的原因及其包含的内容。
Git 中的 .git
文件夹是什么
Git 是一个广泛使用的版本控制系统。Git 仓库存储你在项目中所做的更改。
.git
目录将所有数据存储在你的仓库中。此文件夹可以存储从有关提交的信息到仓库电子邮件地址的任何内容。
你还将找到一个包含你的提交历史记录的日志。使用此日志,你可以恢复所需的代码版本。
当你运行 git init
命令来初始化一个空仓库时,Git 会创建 .git
文件夹。
你可以通过运行以下命令来查看该文件夹。
ls -C .git
你可以期待如下所示的输出。
$ ls -C .git
COMMIT_EDITMSG HEAD config hooks/ info/ objects/ refs/
FETCH_HEAD ORIG_HEAD description index logs/ packed-refs
让我们进一步探索这个目录的内容。
hooks/
-hooks
文件夹存储脚本文件。当你运行诸如push
和commit
之类的命令时,Git 会执行这些脚本文件。objects/
- 此文件夹包含 Git 的对象数据库。config
- 这是 Git 的配置文件。refs/
- 此文件夹包含有关分支和标签的数据。HEAD
- 此文件存储有关你的主分支的信息。index
- 此二进制文件包含暂存数据。
你可以通过运行以下命令查看对象数据库包含的内容。
ls -C .git/objects
你应该得到如下所示的输出。
$ ls -C .git/objects
03/ 24/ 30/ 77/ 87/ ac/ b6/ c6/ e1/ ec/ info/
19/ 29/ 4b/ 78/ 8b/ b1/ c3/ d4/ e6/ f6/ pack/
1f/ 2d/ 67/ 7b/ a6/ b2/ c4/ dd/ e9/ fa/
你可以使用 ls -C .git/objects/<dir>
命令查询数据库的对象。
让我们探索 config
文件。运行 cat .git/config
命令,如下所示。
pc@JOHN MINGW64 ~/Git (main)
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[gui]
wmstate = normal
geometry = 893x435+208+208 175 196
[remote "origin"]
url = https://github.com/Wachira11ke/Delftscopetech.git
fetch = +refs/heads/*:refs/remotes/origin/*
HEAD
文件默认引用你的主分支。
.git
文件夹始终隐藏以防止损坏。如果删除该文件,则无法恢复仓库中的更改。
Author: John Wachira
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn