ローカルリポジトリ「gitlocal」を作成したので、次はこのリポジトリにファイルを追加してコミットしてみましょう。

まずは登録するファイルを作成します。

ワーキングツリー内に「hoge.txt」というテキストファイルを新規作成する
hoge.txt に a という文字を入力して保存する ※ 改行は入れないこと

この時点での「ワーキングツリー」「インデックス」「HEAD」は次の状態 2 になります。
まだ「ワーキングツリー」しか更新していませんので、「インデックス」は空のままで「HEAD」は存在しません。


状態 2


ワーキングツリー
hoge.txt
a


インデックス
 


ローカルリポジトリ「gitlocal」
HEAD 無し

次に git add コマンドを使って hoge.txt をインデックスに登録します。
git add コマンドの構文は次の通りです。

新規ファイルのインデックス登録:
git add <ファイル名>

では早速やってみましょう。

git add hoge.txt
hoge.txt がインデックスに登録されているか確認: git status

この時点での「ワーキングツリー」「インデックス」「HEAD」は次の状態 3 になります。
hoge.txt がインデックスに登録されたので、ワーキングツリーとインデックスが同じ状態になりました。
ただしまだコミットしていませんので「HEAD」はまだ存在しません。


状態 3


ワーキングツリー
hoge.txt
a


インデックス
hoge.txt
a


ローカルリポジトリ「gitlocal」
HEAD 無し

最後に git commit コマンドを使ってインデックスの内容をコミットします。
git commit コマンドの構文は次の通りです。

コミット実行:
git commit -m "コメント"

"コメント"の内容は任意で結構ですが、あまり適当に書くと後で何をしたのか分からなくなるので注意しましょう。
では早速やってみましょう。

git commit -m "hoge.txtを追加(S4)"
コミットするファイルが無いか確認: git status
コミットログを確認: git log

するとインデックスの内容でコミット(スナップショット)が作られて HEAD という識別子が割り当てられます。
この時点で「ワーキングツリー」「インデックス」「HEAD」が全て同じである状態 4 になります。


状態 4


ワーキングツリー
hoge.txt
a


インデックス
hoge.txt
a


ローカルリポジトリ「gitlocal」
HEAD
hoge.txt
a
"hoge.txtを追加(S4)"

さてファイルがひとつだけだと寂しいので、piyo.txt というテキストファイルも追加登録してみたいと思います(piyo.txt に改行は入れないで下さい)。
上と同じような操作を繰り返して「ワーキングツリー」「インデックス」「HEAD」を次の状態 5 にして下さい。

なおコミット時のコメントは"piyo.txtを追加(S5)"とします。
またコミットが一つ増えて HEAD の位置が移動している事に注目して下さい。


状態 5


ワーキングツリー
hoge.txt
a
piyo.txt
A


インデックス
hoge.txt
a
piyo.txt
A


ローカルリポジトリ「gitlocal」
HEAD
hoge.txt
a
piyo.txt
A
"piyo.txtを追加(S5)"
 
hoge.txt
a
"hoge.txtを追加(S4)"