gpt4 book ai didi

git - 如何列出 git 存储库中的所有文本(非二进制)文件?

转载 作者:IT王子 更新时间:2023-10-29 00:41:49 26 4
gpt4 key购买 nike

我有一个包含许多自动生成的源文件的存储库,我在 .gitattributes 中标记为“二进制”(它们被 checkin ,因为不是每个人都可以访问生成器工具)。此外,repo 在被忽略的目录中有很多源代码文件(同样,作为构建过程的一部分生成),以及一些实际的二进制文件(例如图标等小资源文件)。

我现在想在存储库中找到所有非自动生成和非忽略的文件。我原以为我会用 find 和一堆排除项来做这件事,但现在我有一个可怕的 find 语句,里面有十几个子句(而且它仍然不完美做的工作)。 git ls-files 可以工作,但会向我显示所有没有区别的二进制文件,我必须过滤掉这些文件。

所以,我想知道:是否有一个我可以运行的简单命令,它列出了 checkin 存储库的每个文件,以及哪个 git 认为是“文本”文件?

最佳答案

git grep --cached -Il ''

列出所有非空的常规(无符号链接(symbolic link))文本文件:

  • -I:不匹配二进制文件中的模式
  • -l:只显示匹配的文件名,不显示匹配的行
  • '':空字符串使git grep匹配任何非空文件
  • --cached:也可以找到用git add添加但还没有提交的文件(可选)

或者您可以使用 How to determine if Git handles a file as binary or as text?在一个带有 git ls-files 的 for 循环中。

TODO 空文件。

改为查找所有二进制文件:Find all binary files in git HEAD

在 Git 2.16.1 上测试 this test repo .

关于git - 如何列出 git 存储库中的所有文本(非二进制)文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18973057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com