2016-07-05 9 views
-1

gitリポジトリの場合、その作業ディレクトリはハードドライブ上のworking-dirです。インデックスはどこにありますか?

次に、gitリポジトリはworking-dir/.gitにあります。

インデックスはどこにありますか?それはworking-dir/.gitのどこか、またはメインメモリにありますか?

答えて

3

インデックスファイルは.git/indexです。

バイナリファイルなので、直接見ても役に立ちません。 git ls-files --stageを実行すると、インデックスの内容を確認できます。たとえば:

100644 a8233120f6ad708f843d861ce2b7228ec4e3dec6 0 README 
100644 3697d64be941a53d4ae8f6a271e4e3fa56b022cc 0 branch_file.txt 
120000 c0528fd6cc988c0a40ce0be11bc192fc8dc5346e 0 link_to_new.txt 
100644 a71586c1dfe8a71c6cbf6c129f404c5642ff31bd 0 new.txt 
1

アップしている多くの人々をトリップ事、インデックスは「ステージング領域」と呼ばれます、そして、彼らはインデックス付きコンテンツが格納されますいくつかの別の場所があることをことから推測します。それは本当ではありません。 git addは、リポジトリにコンテンツを置き、インデックス内のそのパスのエントリを更新します。これは単なるマニフェスト、リポジトリコンテンツのIDのパス名で索引付けされ軽く注釈を付けられたリストです。インデックスは、多くの場合、多くの場合、がその方法と見なすと便利なので、「ステージング領域」と呼ばれます。

+0

ありがとうございました。データベースのインデックスと同じリポジトリのインデックスですか?バージョン管理リポジトリのインデックスの概念とデータベースのインデックスの概念は同じですか? – Tim

+0

私は「はい、彼らは同じです」と「非常に似ています」の間にいるのですが、ここでの本当の答えは「gitは抽象的ではないと思っています。本当にインデックスにあり、あなたがそれを使ってやることができる有用なもののためにそれを使用する」 – jthill

+0

ありがとうございます。データベースのインデックスを説明するデータベースブックと同様の方法で、gitのインデックスを説明する本をお勧めしますか? – Tim

関連する問題