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