.git ディレクトリの説明
この記事では、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
フォルダは、損傷を防ぐために常に非表示になっています。ファイルを削除すると、リポジトリ内の変更を復元できなくなります。
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