Git コミットした後の Git の状態を表す3つのツリーの確認と公式の説明

Windows シェル拡張(エクスプローラに機能を追加)で Git を操作できる無料の Git クライアントソフトウェア TortoiseGit で、Git の状態を表す 3 つのツリーHEAD ファイル, index ファイル、作業ディレクトリについて、公式のガイドをもとに作成したリポジトリフォルダをにして紹介します。

TortoiseGit ダウンロードとインストール1

TortoiseGit-2.17.0.2-64bit を使用します。

前回の記事

前回は、TortoiseGit を用いて、 Git の公式サイトの reset コマンドの説明のページ「Git – リセットコマンド詳説」でリセットの解説に用いてるリポジトリ例実際に作成する手順を紹介しました。

3つのツリーとは

Git の状態を表す3つのツリーには、

  • HEAD
  • インデックス
  • 作業ディレクトリ(ワーキングツリー)

があります。

ツリー役割
HEAD最新コミットのスナップショットで、次は親になる
インデックス次のコミット候補のスナップショット
作業ディレクトリサンドボックス
Git – リセットコマンド詳説

HEAD

HEAD は、作業に用いているワーキングツリー参照しているコミット位置を指し示すポインタです。
このポインタは、コミットごとに一意のコミットハッシュの値を指します。

Git HEADファイル

HEAD のコミット位置は、通常、ブランチの tip (ブランチの最新のコミット)を指しますが、分離されたコミットのコミット位置を指す場合もあります。
分離されたコミットは、 reset コマンドで取り消されたコミットのことを指します。

現在のブランチを指し示すポインタは HEAD と呼ばれています。HEAD は、そのブランチの最新コミットを指し示すポインタでもあります。 ということは、HEAD が指し示すコミットは新たに追加されていくコミットの親になる、ということです。

Git – リセットコマンド詳説

インデックス

インデックスは、 add コマンドでステージングエリアに追加されているファイルの情報です。
※ステージングエリアは、次回のコミットで Git 管理に記録するファイル群を配置しておくエリアです。

Git公式のresetコマンド説明用のリポジトリの作成6

インデックスとは、次のコミット候補 のことを指します。Git の「ステージングエリア」と呼ばれることもあります。git commit を実行すると確認される内容だからです。

Git – リセットコマンド詳説

この index ファイルが作成されるタイミングについては、以下の記事を参照してください。

作業ディレクトリ

作業ディレクトリは、実際にユーザが閲覧・編集するファイル群を置いているフォルダです。
このファイル群には、 Git 管理外のファイルも、前述の checkout コマンドで指定したコミット位置から取得したGit でバージョン管理されているファイルも含まれます。

Git の視点では、この作業ディレクトリをワーキングツリーとも呼びます。

3つのツリーの最後は作業ディレクトリです。 他のツリーは、データを .git ディレクトリ内に処理しやすい形で格納してしまうため、人間が取り扱うには不便でした。 一方、作業ディレクトリにはデータが実際のファイルとして展開されます

Git – リセットコマンド詳説
Git 作業ディレクトリの例

※ TortoiseGit によって、Git でバージョン管理されているファイルのアイコンには緑色のマークなどが追加表示されます。

まとめ

今回は、Windows シェル拡張(エクスプローラに機能を追加)で Git を操作できる無料の Git クライアントソフトウェア TortoiseGit で、Git の状態を表す3つのツリーHEAD ファイル, index ファイル、作業ディレクトリについて、公式のガイドをもとに作成したリポジトリフォルダをにして紹介しました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

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