簡體   English   中英

列出Git LFS未跟蹤的文件

[英]List files not tracked by Git LFS

我正在用一大堆文件初始化一個新的Git倉庫。 回購正在使用Git LFS 我想確保在我第一次提交之前告訴LFS跟蹤應該處理的所有文件。

我看到git lfs ls-files將列出LFS跟蹤的所有文件。 但是,(a)我想要相反:repo中未被LFS跟蹤的所有文件(並且在.gitignore ),以及(b)此命令僅在您提交文件后才有效。

有沒有人有一些git-fu或Ubuntu-fu列出repo中所有未被忽略的文件並且與Git LFS使用的各種.gitattribute文件中的軌道模式不匹配?


我最接近的是這個命令,它將repo中的文件列出超過100kB,然后手動掃描所有文件,並希望我用跟蹤模式覆蓋它們。

find . -type f -exec du -Sha -t 100000 {} +

即使問題涉及尚未提交的文件,讓我建議一個解決方案,列出git跟蹤的文件,但不提交 git-lfs,這可以通過連接git跟蹤的文件列表來實現( git ls-files )與git-lfs( git lfs ls-files | cut -d' ' -f3- )跟蹤的那些,然后只獲取此列表中唯一的文件:

{ git ls-files && git lfs ls-files | cut -d' ' -f3-; } | sort | uniq -u

之后你可以編輯你的提交( git rm --cachedgit commit --amend ),如果你注意到一個潛入的文件......

在預提交階段,通過觀察未跟蹤文件列表並連續使用git lfs trackgit add應該是非常安全的。

讓我提出一些想法:

要獲取存儲庫中所有文件的列表:

find . -type f > all.txt

要獲取LFS將跟蹤的所有文件的列表:

set -f; for f in $(cat .gitattributes | cut -d ' ' -f 1); do find . -name $f; done > lfs.txt

要獲取LFS不會跟蹤的所有文件的列表:

grep -f lfs.txt -F -w -v all.txt > non-lfs.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM