gitはスナップショットを記録している。
差分を保存しているわけではない。
「branchをきる」「margeする」を高速にできる。
gitの利点は以前のバージョンに戻せる。
ローカルリポジトリ…PC内にある履歴データの置き場
リモートリポジトリ…クラウド上の履歴データの置き場
ローカルには3つのエリアに分かれている。
- リポジトリ…スナップショットの記録
- ステージ…変更されたファイルの指定
- ワークツリー…手元の作業場
add...変更されたファイルのみワークツリーからステージにあげる
commit(コミット)...スナップショットを記録する
gitの中で起きていること
git add...
ワークツリーに作成されたファイル→
リポジトリに圧縮ファイルを作成→
ステージに2つのファイルの紐づけを保存(インデックス)
git commit...
ステージのインデックスをツリーという構造でレポジトリに保存→
ツリーに変更内容を紐づける(コミット:ツリー名、作成者、日付、コミットメッセージ)