テックキャンプ102日目〜Gitのデータ管理の仕組み

kobasaです(´ω`*)
UdemyでGitのコースを進めていますが、一時停止したりするので予想以上に時間かかりますね。
動画時間の倍以上かかりそう。swift大丈夫かな?w

まだ最初の方ですがローカルでのGitの仕組みがわかってきたような気がします。
図を交えて説明してくれるのが非常にわかりやすいです。

102日目の勉強内容

ローカル作業は3つのエリアに分かれており、
・手元で作業をする「ワークツリー」
・コミットする変更を準備する「ステージ」
・コミットを記録する「リポジトリ」がある。

コミットまでの流れ(簡易)

①ワークツリーでindex.htmlを作業する(例)
②index.htmlのファイル内容を圧縮した「圧縮ファイルA(仮)」というファイルをリポジトリに作成
③ステージにある「インデックス」という箱の中に「圧縮ファイルと元のファイル名を紐付けたもの」を保存
ここまでをgit addコマンドで実行できる。

④リポジトリにインデックスを元にした「ツリー1(仮)」というファイルを作成。
⑤リポジトリに「コミット1(仮)」ファイルを作成。中身には
ツリー1/ユーザー名・アドレス/日付/コミットメッセージが含まれている。
ファイルの状態、誰がいつ何のために変更したのかがわかる。
2度目以降は親コミットの情報が入っており、変更履歴を辿れるようにしている。
ここまでをgit commitコマンドで実行できる。

データ構造まとめ

リポジトリに「圧縮ファイル」「ツリー」「コミット」ファイルを作成することでデータを保存している。

コミットが親コミットの情報を持つことで変更履歴を辿ることができる。

Gitの本質はデータを圧縮して、スナップショットで保存していること。
差分を保存しているわけではない。

Gitコマンドはそのデータに対して色々な操作をしている。

Gitのデータ構造をイメージすることが重要!

コメント

  1. 最難関はプログラミングではなく職務経歴書 より:

    ふーん、なるほどな…って感じ(今度教えてください!!!!)

    • kobasa より:

      図解がめっちゃわかりやすかったんですが、
      図なしで説明するのはキツそうです(´・ω・`)
      あとまだ教えられるレベルじゃないですねw

タイトルとURLをコピーしました