3

Git では、コマンドによって返される結果の典型的な行はgit ls-files -s次のようになります。

100755 be2c2e9b0966253096472d4b482c458bc892e493 0 .gitignore

これらのフィールドは何を意味しますか?

4

1 に答える 1

4

git ls-filesman ページを参照してください。

git ls-files--stageが指定されていない限り、ファイル名を出力するだけです。

       [<tag> ]<mode> <object> <stage> <file>

(--stageフラグは と同等-sです。)

これらのフィールドは何を意味しますか?


また、フォローアップ コメントの 1 つで

と の関係<object><file>

ファイルに関連付けられたハッシュの生成には、ファイルの内容 (パス/ファイル名ではなく) のみが使用されるため、これらは完全に独立しています。それを納得させるために、おもちゃのリポジトリで次の実験を行うことができます。

# Set things up
$ mkdir testgit
$ cd testgit/
$ git init

# Write the same contents to two files
$ printf "foo\n" > README.md
$ printf "foo\n" > bar.txt

# Stage the two files and run git ls-files
$ git add .
$ git ls-files -s

100644 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 0    README.md
100644 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 0    bar.txt

2 つのファイルの名前は異なりますが、内容が同じであるため、SHA は同一であることに注意してください。

于 2015-01-26T21:50:22.700 に答える