次に既存のファイルを更新してコミットしてみます。

基本的には新規作成と同様に、ファイルを更新したら add して commit という流れになります。
では実際にやってみましょう。

hoge.txtに b という文字を追加 ※ 改行は入れないこと
hoge.txt を上書き保存

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


状態 6


ワーキングツリー
hoge.txt
ab
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)"

次に git add コマンドを使って hoge.txt をインデックスに登録します。

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

この時点でワーキングツリーとインデックスが同じである状態 7 になりますが、まだコミットしていませんのでHEADは前の状態のままです。


状態 7


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


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


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

最後に git commit コマンドを使ってコミットします。

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

これでインデックスの内容でコミットが作られ、そこに HEAD が移動します(状態 8 )。


状態 8


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


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


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

では練習として、今度は piyo.txt に B を追加して次の状態 9 にして下さい(piyo.txt に改行は入れないで下さい)。
コミット時のコメントは "piyo.txtを更新(S9)" とします。


状態 9


ワーキングツリー
hoge.txt
ab
piyo.txt
AB


インデックス
hoge.txt
ab
piyo.txt
AB


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