Gitがファイルを配置する場所について
「Git」が使用するファイルは、目的により配置される場所が決まっています。これは、ユーザーが「Git」でファイルを操作する上で大切な概念になります。
「Git」では、ファイルの配置場所を、3箇所定義しています。
- Gitディレクトリー
- ワーキングディレクトリー
- ステージングエリア
それぞれの配置場所は、予めデフォルトの配置場所が決められていますが、ユーザーが変更できる配置場所もあります。
1.Gitディレクトリー(Git Directory)
「Gitディレクトリー」とは、リポジトリーが配置されるフォルダー(ディレクトリー)のことです。いわゆるリポジトリー本体が収められているフォルダーです。
Gitが動作するのに必要なファイル群が配置される
「Git」が管理する様々なデータが含まれています。プロジェクトのファイル群を格納する「オブジェクトデータベース」も「スナップショット」も「Gitディレクトリー」内に配置されます。
2.ワーキングディレクトリー(Working Directory)
「Gitディレクトリー」にある「スナップショット」からプロジェクトのファイル群を取得し、プロジェクトのファイル群を展開するフォルダー(ディレクトリー)です。ユーザーが作業を行うフォルダー
ワーキングディレクトリー(作業ディレクトリー)という名の通り、ユーザーはこのフォルダー内に展開されたファイルに対して編集などの作業を行います。「スナップショット」からプロジェクトのファイル群を取得・展開することを、「チェックアウト」と言います。
ちなみに上図の「.git」フォルダーは、「Gitディレクトリー」です。
3.ステージングエリア(Staging Area)
「ステージングエリア」は、ステージされたファイル群の情報が格納されるファイルのことです。「index」ファイルのことです。
このファイルは、「Gitディレクトリー」内にあります。
仮のスナップショット
「ステージングエリア」には、仮の「スナップショット」が作成されています。ステージしたファイルは、一時的に「オブジェクトデータベース」に保存されます。
ユーザーがコミットしない限り、正式な「スナップショット」は作成されません。
ファイルの状態とファイルの配置場所
前回紹介した「Gitで管理されるファイルの状態」と、各ファイルの状態に対応したファイルの配置場所を関連付けると、以下のようになります。ファイルの状態 | 配置場所 |
---|---|
コミットされた状態(committed) | Gitディレクトリー(Git Directory) |
変更された状態(modified) | ワーキングディレクトリー(Working Directory) |
ステージされた状態(staged) | ステージングエリア(Staging Area) |
ファイルの状態と配置場所を図にすると、以下のようになります。