今回の記事は、『③Git 操作の流れを理解する「全体像を把握する」』について解説いたします。
Git 操作の流れについては、2回に分けて解説していきますので是非次回の記事と合わせてお読みください!
過去の記事は、下のリンクよりご確認ください!
今回の記事は、下記の内容を解説いたします。
- ローカルで作業している際の『作業』流れについて
- ローカルで作業している際の『保存データ』の流れについて
- 保存データの流れを画像で解説
- リポジトリに「圧縮ファイル」「ツリーファイル」「コミットファイル」を生成する事でデータを保存している
Git 操作の流れを理解する事は、Git コマンドを理解する上で必要な事ですのでしっかり抑えておきましょう。
Git操作の全体の流れ
Git は大きく分けて【ローカルリポジトリ】で作業した内容を【リモートリポジトリ】に保存するという流れになります。
ワークツリーでファイルの作成や変更を行う。
ファイルを変更したらスナップショットで記録する。
スナップショットで記録した内容を GitHub にアップする
各用語の意味を再確認
各用語の認識を整理しておきます。
- ローカル:自分のパソコン上の事
- ワークツリー:自分の手元の作業場
※ワーク ⇒ 作業場
※ツリー ⇒ ディレクトリやフォルダーの事 - リポジトリ:履歴データを保管している場所
- スナップショット:ある時点での状態(コードや、ファイル、ディレクトリなど)を抜き出したもの。
- ローカルリポジトリ:自分のパソコン上の履歴データを保管している場所
- リモートリポジトリ:オンライン上のデータを保管している場所
※リモート ⇒ 通信回線やネットワークなどを通じて結ばれている事
ローカルの作業の流れ
Git 操作の約8割がローカルでの作業となります。
ローカルでの作業の流れをしっかり確認しておきましょう!
ローカルは3つのエリアに分かれている
ローカルでの作業は、3つのエリアに分かれて作業を行っています。
【ワークツリー】【ステージ】【ローカルリポジトリ】の3つです。
ファイルの作成や変更を行う作業場
ファイルの作成や変更した内容をコミットする前に準備する場所
・git add コマンドでステージングエリアに追加する。
※スナップショットを記録する為の準備の場所
スナップショットを記録している保管場所
・git commit コマンドでローカルリポジトリに記録する

※【git add , git commit コマンド】については、他の章で詳しく解説します。
3つのエリアの流れは、
ワークツリー(ファイルの作成・変更)
↓(git add コマンド)
ステージ(コミットする前の場所)
↓(git commit コマンド)
ローカルリポジトリ(スナップショットを記録)
となります。
そして、ローカルリポジトリで記録したスナップショットをGitHubにアップするという流れになります。
ローカルの作業(3つのエリア)で起きている保存データの流れ
次に、3つのエリアで起きている「各エリアで起きているデータの状態」について、解説してみたいと思います。
ここでの解説は、イメージを掴める様に少しかみ砕いて解説しています。
ですので、厳密には正確ではない箇所もありますが、イメージを掴む為の解説を優先していますので予めご了承いただきたいと思います!(^^;)
ワークツリー・ステージ・リポジトリに保存されているデータを確認しよう!
ワークツリーで作業していたファイルをステージングエリアに追加(git add)して、ローカルリポジトリへコミット(git commit)するまでのデータの流れを見ていきます。
git add コマンドを実行した際
ワークツリーで作業したファイル(ここではindex.htmlとします)をステージに追加する際には「git add コマンド」を行います。
git add コマンドを行うとステージに直接データが保存されるのではなく、リポジトリに index.html の圧縮ファイル(A)が生成されます。
そして、その圧縮ファイル(A)のファイル名とファイルの中身をマッピングした情報をもったインデックスファイルを作成されてステージに保存しているのです。

git commit コマンドを実行した際
ステージングエリアにあるデータをローカルリポジトリに保存する際には「git commit コマンド」を行います。
git commit コマンドを行うとリポジトリにツリー(1)ファイル、コミット(1)ファイルが生成されます。
ツリー(1)ファイル
ツリーファイルは、インデックスに記載されているディレクトリのファイル構成を改めて保存したものです。
※ディレクトリ:フォルダーの事。

ツリーという名前の由来は、「ディレクトリの構造を見たときに階層が深くなるにつれて木の枝葉のように広がっていくから」の様です。
コミット(1)ファイル
コミットファイルには、いくつか情報が保存されます。
- ツリーファイル
- コミットした人の名前
- コミットした日付
- コミットメッセージ
ツリーファイルを保存している理由は、ツリーファイルからファイルの構成(ファイル名やファイルの中身)が分かるのでコミットした際にスナップショットが分かる様になっている為です。
つまりコミットファイルは、その時のファイル状態から誰が・いつ・何のためにコミットしたのかを保存しているのです。

ここで重要な点ですが、ローカルリポジトリには3つのファイル「圧縮ファイル」「ツリーファイル」「コミットファイル」がある事を把握しておきましょう。(^_^)/
お疲れ様でした。今回は以上です。
『Git 操作の流れを理解する「全体像を把握する」』を解説してみました。

何か不具合等がでましたら、私で分かる事でしたらお答えしますのでコメントや問い合わせよりご連絡ください!
次回の記事は、今回の内容の続きとなります!
『Git 操作の流れを理解する「ファイルの追加・変更が起きた際のデータの流れ」』を解説したいと思います。ヾ(≧▽≦)ノ
UPSTART!!(=゚ω゚)ノ
#Git #GitHub #プログラミング #初学者


コメント