#リポジトリ
バージョン管理をするには、1つ1つのバージョンの情報(いつ、誰が、どのファイルのどの箇所を、どんなメッセージを残して変更したか)を保存しておく必要があります。
その保存先のことをリポジトリと呼びます。
リポジトリは、ただの入れ物(箱)です。リポジトリという箱の中にGitで保存しているバージョン情報が保管されているとイメージしてください。
また、リポジトリには2つ種類があります。
ローカルリポジトリ
リモートリポジトリ
ローカルリポジトリは、実際に作業を行うリポジトリのことで、自分のPCやCloud9上で作られるリポジトリ。
リモートリポジトリはGitHub上に作られる。
#コミット
Gitでは、1つ1つのバージョンのことを、コミットと呼びます。また、コミットを作成することをコミットすると言います。
リビジョン番号(1e010f4572625f3741a306b8e996cのような値)
コミットした人(誰が)
コミットした日時(いつ)
コミットしたときのファイル内容の差分(どのファイルの、どの箇所を)
コミットメッセージ(どんなメッセージを残して)
親コミット(1つ前のコミット)のリビジョン番号
リビジョン番号は、コミットを一意に指定できるIDのような役割を果たします。
コミットメッセージは、コミットするときに必須のメッセージで、どういった内容の変更をコミットするのか簡単なメッセージにまとめて書いておきます。
リポジトリ内では、1つ1つのコミットが親コミットのリビジョン番号を持っているので、コミットは親コミットを辿ることで連なるように変更履歴を管理できているのです。
#ワークツリーとインデックス
ワークツリーとは、Gitでバージョン管理されているフォルダ内のことです。
次に、ワークツリーから次のコミットに含めたいファイルの変更箇所を選択します。変更箇所を選択することを、ステージすると言います。ステージされた変更箇所はインデックス(ステージングエリアとも言う)に反映されます。インデックスはローカルリポジトリへコミットする一歩手前で、コミットする変更箇所を選ぶ段階です
最後にコミットを行い、バージョンが1つ進みます。このときコミットされる変更箇所は、インデックスにステージされた変更箇所のみです。
インデックスはコミットを行う前に、ワークツリーの変更箇所の中から関連性のある変更のまとまりを選択するという重要な役割があるのです。