はじめに
最近、Git/GitHubについて学習しております。
今回は、Gitの根本的な知識であるローカルのデータ構造についてアウトプットしたいと思います。
※今回の内容では、GitHub等のリモートリポジトリは含まれておりません。
ローカルのデータ構造のエリア分け
各エリアについて説明
上記で紹介した各エリアについて掘り下げていきたいと思います。
ワークツリー
ワークツリーとは、実際に作業を行う場所です。
ファイルの作業完了後、以下コマンドでインデックスに登録します。
git add <ファイル名>
インデックス(ステージ)
インデックスとは、リポジトリにコミットする準備をする場所です。
別名、「ステージ」とも言います。
インデックス内に必要なファイルが準備できた場合、下記コマンドでリポジトリに登録します。
git commit -m "<コミットメッセージ>"
インデックスがワークツリーとリポジトリの間にある理由
理由は、以下の2点になります。
- ワークツリー内の必要ないファイルを含めずにコミットを行える。
- ファイルの一部の変更だけをインデックスに登録してコミットが可能
リポジトリ(ローカルリポジトリ)
リポジトリとは、ファイルやディレクトリの状態を記録する場所になります。
今回、紹介しているリポジトリの位置づけとしては、**「ローカルリポジトリ」**になります。
リモートリポジトリとローカルリポジトリの違い
- リモートリポジトリ
専用のサーバにコード等のファイルを配置して複数人で共有するためのリポジトリです。
例)GitHub,BitBucket
- ローカルリポジトリ
ユーザー自身の手元のマシン上に配置するリポジトリです。
※今回紹介しているリポジトリが、こちらにあたります。
まとめ
- ワークツリー
ファイルの作業をする場所
- インデックス(ステージ)
コミット前にファイルを待機させておく場所
- リポジトリ(ローカルリポジトリ)
ファイルの変更履歴を保存する場所
参考
Git: もう怖くないGit!チーム開発で必要なGitを完全マスター
ワークツリーとインデックス
履歴を管理するリポジトリ