4

Git では、ステージング領域はインデックスとも呼ばれます。言われているように見えるのは、作業ディレクトリに変更を加えてこれらの変更を「ステージング」に追加すると、gitはこれらのファイルをインデックスファイルに追加するということです。プロジェクトの /.git/index ファイルを開くと、入力時に表示されるテキストを含むファイルが表示されます。

git status

次のような出力が得られる場合があります。

# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   Gemfile
#
no changes added to commit (use "git add" and/or "git commit -a")

しかし、Git Index Contentsのような他の場所では、次のように入力して言います。

git ls-files --stage

インデックスの内容を見ることができます..これは明らかに /.git/index にあるものではありません。.git ディレクトリ内のどのファイルが実際にこのインデックスを格納していますか? 私が疑っているのは、間違っているかもしれません.. .git/index は変更情報を「変更された」行に保存し、次に git ls-files --stage と入力すると、そのファイルのリストを構築していることですステージングされ、そのハッシュは、作業ディレクトリ内のファイルと、このインデックス ファイルで変更済みとしてリストされているファイルに基づいています。これは正しいですか?

4

1 に答える 1

5

のインデックスファイル.git/indexはテキストファイルではなく、インデックスに関する必要な情報を含むバイナリファイルでありインデックスです。

出力で何を言おうとしているのかわかりませんgit statusgit status追跡されていないファイルも出力します。インデックスには追跡されていないファイルの知識も含まれていると言っていますか?もちろん違います。

于 2013-03-12T03:52:17.917 に答える