我正在使用Git LFS初始化一个包含大量文件的新Git存储库。在进行第一次提交之前,我想确保我已经告诉LFS跟踪应该处理的所有文件。
我看到git lfs ls-files
会列出所有被LFS跟踪的文件。然而,(a) 我想要相反的:所有在存储库中未被LFS跟踪(并且在.gitignore
中)的文件,以及(b)此命令仅在提交文件之后才起作用。
是否有人能够提供一些git-fu或Ubuntu-fu来列出存储库中所有未被忽略且未与Git LFS使用的各种.gitattribute
文件的跟踪模式匹配的文件?
最接近的方法是使用这个命令列出仓库中超过100kB的文件,然后手动扫描所有文件,并希望它们被跟踪模式所覆盖。
find . -type f -exec du -Sha -t 100000 {} +
cut
命令(-f3
)中的范围应该是-f3-
,以防路径中有空格。 - Grimehlfs-untracked = "!_() { ((git ls-files | egrep \"^${GIT_PREFIX}\") && (git lfs ls-files ${GIT_PREFIX:+-I ${GIT_PREFIX}} | cut -d' ' -f3-)) | sort | uniq -u ; }; _"
- crimson-egret({ git ls-files && git lfs ls-files | cut -d' ' -f3-; } | sort | uniq -u) | xargs stat -c '%s %n' | numfmt --to=iec | sort -h
- Martin Valgur