在 .gitattributes 中排除文件被视为文本
Excluding files from being considered text in .gitattributes
我看到很多带有 .gitattributes
文件的存储库将行结尾规范化为如下内容:
*.js text eol=lf
应该只规范化 .js
文本文件,但它们也明确排除一些二进制文件,例如 .png
文件:
*.png -text
这似乎没有必要,因为第一条规则仅适用于基于文本的 .js
文件。这个对吗?或者这只是被认为是最佳实践?
我不太清楚你的问题是什么。我要回答的问题是:是否有必要或建议在 .gitattributes
中将特定文件标记为文本或二进制,当指示 Git 执行 CRLF 行结束转换时?
答案是:这不是必需的,但建议。在如果没有明确的建议,Git 将根据文件内容(不是文件名或扩展名,而是对逐字节内容的简单统计分析)猜测。会 Git 猜测您的 jpg 图像是文本,从而破坏它吗? Git 会猜测您的程序源是二进制的,因此懒得做 CRLF 行结束调整吗?我不知道,你也不知道。
Git的猜测非常好。但是为什么要冒这个风险,明确列出您的文件很容易,并且完全消除了这种风险?
我看到很多带有 .gitattributes
文件的存储库将行结尾规范化为如下内容:
*.js text eol=lf
应该只规范化 .js
文本文件,但它们也明确排除一些二进制文件,例如 .png
文件:
*.png -text
这似乎没有必要,因为第一条规则仅适用于基于文本的 .js
文件。这个对吗?或者这只是被认为是最佳实践?
我不太清楚你的问题是什么。我要回答的问题是:是否有必要或建议在 .gitattributes
中将特定文件标记为文本或二进制,当指示 Git 执行 CRLF 行结束转换时?
答案是:这不是必需的,但建议。在如果没有明确的建议,Git 将根据文件内容(不是文件名或扩展名,而是对逐字节内容的简单统计分析)猜测。会 Git 猜测您的 jpg 图像是文本,从而破坏它吗? Git 会猜测您的程序源是二进制的,因此懒得做 CRLF 行结束调整吗?我不知道,你也不知道。
Git的猜测非常好。但是为什么要冒这个风险,明确列出您的文件很容易,并且完全消除了这种风险?