Gitで管理されるファイルの状態
「Git」では、Gitで管理されるファイル(プロジェクトで使用するファイル)に、以下の3種類のファイルの状態を定義しています。この状態の違いは、ユーザーが「Git」でファイルを操作する上で大切な概念になります。
- コミットされた状態
- 変更された状態
- ステージされた状態
1.コミットされた状態(Committed)
ファイルが「オブジェクトデータベース」に保存されている状態です。ユーザーがコミットすると、ファイルが「オブジェクトデータベース」に保存され、コミットされた状態になります。
言い換えれば、ファイルが「スナップショット」に保存されている状態です。
2.変更された状態(Modified)
ファイルが編集されている状態です。まだ「オブジェクトデータベース」にファイルをコミットしておらず、「オブジェクトデータベース」に保存されているファイルの中身と異なっている状態です。
新規に作成したファイルなら、「オブジェクトデータベース」にそのファイルは存在していません。
3.ステージされた状態(Staged)
「2.変更されたファイル」を、次のコミットで「オブジェクトデータベース」に保存する状態のファイルです。ステージとは
コミットを行うには、一旦編集したファイルをステージする必要があります。コミット時、ステージされたファイルが「スナップショット」に保存されます。
ユーザーはファイルを編集後、そのファイルを「スナップショット」に保存する際、そのファイルに「次のコミットでスナップショットに保存する」マークを設定します。
このマークを付けることを、「ステージする」と表現します。
また、このマークが設定された状態を、「ステージされた状態」と表現します。
編集が完了したファイルをステージする
ステージされたファイルとは、簡潔に言えば編集済みのファイルのことです。編集途中・作業途中のファイルではなく、もうこれ以上編集する必要がない、作業する必要がないファイルのことです。
ユーザーは、編集途中・作業途中のファイルを「ステージされた状態」にすることは、ほとんどありません。
ファイルをステージすると、ファイルは、コミットするまで仮の「スナップショット」に保存されます。
「ステージングエリア」も参考にしてください。
ファイルをスナップショットに保存するには、ファイルをステージする必要がある
ファイルを「スナップショット」に保存するには、ファイルを「ステージされた状態」にする必要があります。ここでコミットの準備が行われます。
ステージされたファイルは、コミット対象のファイルと言い換えることもできます。
「ステージされた状態」のファイルをコミットすれば、そのファイルの状態は「1.コミットされた状態」になります。