我应该在哪里放置我的全局'gitattributes'文件?

oro*_*ome 49 unix git path gitattributes

我收集了(尽管缺乏文档)一种在全球范围内设置Git属性的方法 ; 但我不清楚在哪里放置必要的gitattributes文件.该说明称,他们属于中

$(prefix)/etc/gitattributes
Run Code Online (Sandbox Code Playgroud)

但是在哪里$(prefix)?特别是OS X(Git in /usr/local/git/bin/git)的用途是什么?或者(或另外)可以~/.gitattributes 工作吗?

jub*_*0bs 72

全局与系统范围的设置

你的问题的术语有些含糊不清.在Git上下文中,"全局"通常表示"用户级"; 换句话说,全局设置会影响一个特定用户的所有存储库.相反,系统范围的设置会影响计算机所有用户的所有存储库.

存储库级gitattributes

(我只是提到完整性.)

根据Pro Git书相关部分,

如果您希望仅影响单个存储库(即,将属性分配给特定于该存储库的一个用户工作流的$GIT_DIR/info/attributes文件),则应将属性放在文件中.

$GIT_DIR通常会扩大到<path-to-repo-root-directory>/.git.

全局(用户级)gitattributes

根据Pro Git书相关部分,

应该影响单个用户的所有存储库的属性应该放在core.attributesfile配置选项[...] 指定的文件中.它的默认值是$XDG_CONFIG_HOME/git/attributes.如果$XDG_CONFIG_HOME未设置或为空,$HOME/.config/git/attributes则使用.

您还可以运行以下命令,

git config --global core.attributesfile <path>
Run Code Online (Sandbox Code Playgroud)

将Git指向<path>全局gitattributes文件的自定义路径,例如~/.gitattributes.

系统范围的gitattributes

根据Pro Git书相关部分,

系统中所有用户的属性应放在$(prefix)/etc/gitattributes文件中.

这自然引出了一个问题:

[...]但是在哪里$(prefix)

请参阅$(前缀)/ etc/gitconfig上的$(前缀)是什么?得到答案.除非您已分配prefix自定义的非空值,否则$(prefix)默认情况下会展开为空; 因此,您的系统范围gitattributes文件应驻留在/etc/.