我有一个 .txt 文件目录,我想将其视为二进制文件。这可以防止 git 更改这些文件的行结尾,以便校验和在所有系统上保持一致。
但是,我有一个 .txt 文件,我想将其保留为文本。如果我创建一个 .gitattributes 文件,例如:
*.txt binary
foo.txt text
foo.txt 仍被视为二进制文件,并且 git diff
无法正确显示更改。似乎 .gitattributes 中不支持否定,就像 .gitignore 中一样。还有其他方法可以实现此功能吗?
最佳答案
二进制
是什么the gitattributes documentation指的是宏属性:
Setting the "binary" attribute also unsets the "text" and "diff" attributes as above.
所以binary
字面意思是-text -diff
。然后,您使用第二行覆盖 foo.txt
的 -text
设置,但尚未覆盖 -diff
设置。将第二行更改为:
foo.txt text !diff
将恢复 diff
的默认未设置性,同时:
foo.txt text diff
将强制设置diff
(两者可能都会产生差异,因为Git之前可能没有将foo.txt
检测为二进制文件)。
(请注意,除了分段之外,没有直接的方法可以“撤消”宏属性。您可以定义自己的宏属性来撤消某些现有宏属性的每一部分,例如,定义一个表示 !text ! diff
,然后它将删除binary
。)
关于git - .gitattributes : override settings for a single file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71506502/