.gitattributes:覆盖单个文件的设置



我有一个.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。(

相关内容

  • 没有找到相关文章

最新更新