Git の HEAD、ワーキング ツリー、およびインデックスの違いは何ですか?

Git No Head Wakingu Tsuri Oyobiindekkusuno Weiiha Hedesuka



Git は、作業ディレクトリとローカル Git リポジトリの違いを追跡する分散バージョン管理システムです。同様に、Git ローカル リポジトリとリモート リポジトリの違いも追跡します。 Git で作業している間、開発者は多数のファイルを扱います。最初に作業ディレクトリで作業し、ファイルを作業ディレクトリから Git インデックスに移動します。その後、変更をコミットしてデータをローカル リポジトリに保存します。したがって、HEAD は新しいコミットごとに移動します。

この投稿では、Git の HEAD、ワーキング ツリー、およびインデックスを区別します。

Git のワーキング ツリー、HEAD、およびインデックスの違いは何ですか?

」は、ユーザーが現在作業しているブランチまたはコミットを指す一意の参照です。 「 作業ツリー 」は、ステージングされていないすべての変更を保持する、ユーザーが作業している現在の作業領域です。一方 ' 索引 」は、コミットする必要がある変更を含む、作業ディレクトリとローカル リポジトリの間のステージング領域です。







GitでHEADポインタを見つける方法は?

HEAD の現在位置を表示するには、「 git ログ 」コマンドと「 –オンライン ' オプション:



$ git ログ - オンライン

以下の出力は、HEAD が「 主人 「ブランチと」 d3fd3b ' 専念:







Git で作業ツリーを見つける方法は?

開発者が作業ツリーから追跡されていないすべての変更のリストを表示したい場合は、「 git ls-tree HEAD ' 指図:

$ git ls-tree

以下の出力によると:



  • 最初の列は、ファイルのパーミッション (読み書き) を表します。
  • 2 列目は「 ブロブ これは、各ファイルのコンテンツをリポジトリに格納するために使用される大きなバイナリ オブジェクトを表すオブジェクトの一種です。
  • 3 列目は、現在作業中のリポジトリ コミットのコミット ID を保持します。
  • 4 番目の列には、ファイルのタイトルのリストが含まれています。

Gitでインデックスを見つける方法は?

Git でインデックスを見つけるには、「 git ls-ファイル ' 指図:

$ git ls-ファイル -s

以下の出力では:

  • -s 」フラグは、ステージングされたファイルに使用されます。
  • 列 1 は、ファイルの chmod または権限を示します。
  • 列 2 には、現在作業中のリポジトリ コミットの SHA ハッシュが含まれています。
  • 同様に、列 3 は、「 0 」。
  • 最後の列には、利用可能なファイルのタイトルのリストが表示されます。

Git では、HEAD、ワーキング ツリー、インデックスを区別しています。

結論

HEAD は、ユーザーが最後にチェックアウトしたブランチまたはコミットを特定するポインターです。作業ツリーは、ユーザーが作業し、ファイルを保持する現在の場所です。ただし、インデックスは、ユーザーが新しい変更をコミットする Git ステージング領域です。この投稿では、HEAD、作業ツリー、およびインデックスの違いを示しました。