我有一个.txt文件目录,我想将其视为二进制文件。这样可以防止git更改这些文件的行尾,从而使校验和在所有系统上保持一致。
但是,我有一个.txt文件,我想保留为文本。如果我创建一个.gitattributes文件,如:
*.txt binary
foo.txt text
foo.txt仍被视为二进制文件,git diff
无法正确显示更改。在.gitattributes中似乎不支持否定,就像在.gitignore中一样。有其他方法可以做到这一点吗?
binary
是gitattributes文档所称的宏属性:
设置;二进制";属性也取消设置";文本";以及";diff";属性。
所以binary
的字面意思是-text -diff
。然后用第二行覆盖foo.txt
的-text
设置,但尚未覆盖-diff
设置。将第二行更改为:
foo.txt text !diff
将恢复diff
的默认未设置状态,而:
foo.txt text diff
将强制设置diff
(两者可能都会导致diff,因为Git之前可能没有将foo.txt
检测为二进制(。
(请注意,除了逐段之外,没有直接的方法可以"撤消"宏属性。您可以定义自己的宏属性来撤消某些现有宏属性的每一部分,例如,定义一个表示!text !diff
的属性,然后它将删除binary
。(