2016-04-12 10 views
4

これはGitのLFSの私のリストはファイルにのgit LFS LS-ファイル:ダッシュ対アスタリスク(*)( - )一つのファイルにはアスタリスク/星を持っていないのはなぜ

$ git lfs ls-files

b1d5dd29dd - file1.zip 
27d3073f43 - file2.zip 
fb4e699c05 * file3.zip 

を管理されています(*)の横に、ダッシュ( - )が付いています。

git lfs wikiは、(*)が期待されているようです。

https://github.com/github/git-lfs/wiki/Tutorial

git lfs statusオールクリア示していない(コミットすべき事項を/プッシュ/上演)。

答えて

4

the ls-files man pageに記載されていないため、I dug into the source code to find the answerです。

func lsFilesMarker(p *lfs.WrappedPointer) string { 
    info, err := os.Stat(p.Name) 
    if err == nil && info.Size() == p.Size { 
     return "*" 
    } 

    return "-" 
} 

*おそらくは、ディスク上のファイルがリポジトリまたはインデックス内の1つのと同じサイズであることを意味しWrappedPointer.Sizeに何があるかに依存します。 It was added in this commit, but not explained。いずれにしても、コンテンツは変更できますがサイズは変更できないため、テストは不十分なようです。

the - code path is never testedに注意してください。あなたは、テストとドキュメントの不足についてlet them knowを望むかもしれません。

+0

コミットメッセージの4行目に基づいて、 '*'はファイルがLFSポインタであることを示し、 ' - 'はファイルが完全なオブジェクトであることを示していると推測します。しかし再び、それはちょうど推測です。 – cowlinator

0

gitと同様に、 ' - 'はファイルが作業ディレクトリで削除されたことを示します。 ' - 'の付いた2つのファイルは実際に誤って削除されていました。それらを復元すると、「*」が取り戻されました。

私が捨てたのはgit lfs statusで何も報告されていませんでしたが、私は間違って解釈していると思います。

+0

gitコマンドは、ファイルが削除されたことを示すのに '-'を使用しますか? – Schwern

関連する問題