一个快速的故事发生了什么:我已经在我的.gitattributes
中放置了以下内容:
.htaccess merge = ours
然后Git显示了一个错误“不是一个有效的属性名”。
我当时尝试的是:
.htaccess merge=ours
或者把它写出来:如果你设置了一个属性值,但是你在等号周围放了空格,那么只需要删除空格。不仅仅是我
但是现在,除了它们不能包含空格之外,自2015年底以来,Git中的有效属性名称是什么?
错误消息没有告诉我今天的情况,我的文本生成技能很弱,所以我无法针对我的本地git版本探测整个Unicode(以及Git可能支持的未记录编码),然后我不知道其他人将使用哪些其他git版本来 checkout 仓库。
所以回到2015年,对我来说,2023年的答案看起来很不错。因为这是一个关于git的问题,我想有一个grep查询可以告诉我,但是,嗯,我今天感觉很虚弱。任何帮助都非常感谢。
1条答案
按热度按时间6yoyoihd1#
gitattributes(5)
文档对每行的格式是这样说的:也就是说,一个模式后跟一个属性列表,由空格分隔。前导和尾随空格将被忽略。以#开头的行将被忽略。以双引号开头的模式在C风格中被引用。
文档没有描述属性名称,但代码描述了(
attr.c
中的函数attr_name_valid
),并使用以下文本:属性名称不能以
-
开头,必须由[-A-Za-z0-9_.]
中的字符组成。属性的主体(如果有的话)似乎没有限制,但我强烈建议您坚持使用UTF-8。没有人会喜欢在文件中有任意的字节序列。
请注意,由于在属性周围指定了空格,因此尝试定义了三个单独的属性:
merge
、=
和ours
。由于=
不是一个有效的属性,因此您得到了该错误消息。