这是我列出的git-lfs托管文件
$ 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
显示全部清除(没有要提交/推送/暂存的内容)。
ls文件手册页中没有记录这一点,所以我深入研究了源代码以找到答案。
func lsFilesMarker(p *lfs.WrappedPointer) string {
info, err := os.Stat(p.Name)
if err == nil && info.Size() == p.Size {
return "*"
}
return "-"
}
*
可能意味着磁盘上的文件与存储库或索引中的文件大小相同,这取决于WrappedPointer.Size
中的内容。此提交中添加了它,但未对此进行解释。不管怎样,这似乎是一个糟糕的测试,因为内容可以改变,但大小不能改变。
请注意,-
代码路径从未经过测试。您可能希望让他们知道缺少测试和文档。
本页建议:
OID后面的星号(*)表示LFS指针,减号(-)表示完整对象。
但我的经历恰恰相反。
对我来说,减号(-)表示指针,星号(*)表示git-lfs中真正的大文件。
就像git中一样,'-'表示文件已在工作目录中删除。带有"-"的两个文件确实被无意中删除了。恢复它们会带回"*"。
让我失望的是git lfs status
什么都没报告,但我想我的解释错了。