我正在用一大堆文件初始化一个新的Git repo,这个repo使用的是Git LFS,我想确保在我第一次提交之前,我已经告诉LFS跟踪所有应该处理的文件。
我看到git lfs ls-files
会列出所有被LFS跟踪的文件。然而,(a)我想要的正好相反:存储库中未被LFS跟踪的所有文件(并且在.gitignore
中),以及(b)此命令仅适用于after you have committed files。
有没有人有一些git-fu或Ubuntu-fu来列出repo中所有没有被忽略的文件,以及Git LFS使用的各种.gitattribute
文件中的轨迹模式不匹配的文件?
- 最接近的是这个命令,它列出了存储库中超过100 KB的文件,然后手动扫描所有文件,希望跟踪模式能覆盖这些文件。*
find . -type f -exec du -Sha -t 100000 {} +
2条答案
按热度按时间li9yvcax1#
尽管这个问题涉及到 * 没有 * 被提交的文件,我还是建议在提交后列出git跟踪的文件,而不是git-lfs跟踪的文件,你可以把git(
git ls-files
)跟踪的文件列表和git-lfs(git lfs ls-files | cut -d' ' -f3-
)跟踪的文件列表连接起来,然后只取这个列表中唯一的文件:在此之后,如果您发现有文件潜入,您可以编辑您的提交(
git rm --cached
和git commit --amend
)。在预提交阶段,观察未跟踪文件列表并连续使用
git lfs track
和git add
应该是非常安全的。请注意,规范不将空文件视为LFS对象,因此它们不会按
git lfs ls-files
列出toiithl62#
让我给予一些想法:
获取存储库中所有文件的列表:
要获取LFS将跟踪的所有文件的列表:
获取LFS不会跟踪的所有文件的列表: