我搜集到了(尽管缺乏文档)一种全局设置Git属性的方法。但我不清楚在哪里放置必要的gitattributes
文件。该说明称,他们属于在
$(prefix)/etc/gitattributes
但是哪里$(prefix)
呢?特别是OS X(在中装有Git)会在/usr/local/git/bin/git
哪里?替代地(或除此之外)会~/.gitattributes
工作吗?
Answers:
您的问题的术语含糊不清。在Git上下文中,“全局”通常表示“用户级别”;换句话说,全局设置会影响一个特定用户(活动用户)的所有存储库。相反,系统范围的设置会影响计算机所有用户的。
(出于完整性考虑,我仅提及此内容。)
如果只希望影响单个存储库(即,为该存储库的一个用户的工作流特有的文件分配属性),则应将属性放在
$GIT_DIR/info/attributes
文件中。
$GIT_DIR
通常会扩展到<path-to-repo-root-directory>/.git
。
应该影响单个用户所有存储库的属性应放置在
core.attributesfile
配置选项[...]指定的文件中。默认值为$XDG_CONFIG_HOME/git/attributes
。如果$XDG_CONFIG_HOME
未设置或为空,$HOME/.config/git/attributes
则改为使用。
您还可以运行以下命令,
git config --global core.attributesfile <path>
将Git指向<path>
您的全局gitattributes文件的自定义路径,例如~/.gitattributes
。
系统上所有用户的属性都应放置在
$(prefix)/etc/gitattributes
文件中。
这自然地引出了一个问题:
[...]但是哪里
$(prefix)
呢?
请参阅$(prefix)/ etc / gitconfig上的$(prefix)是什么?寻求答案。除非您分配prefix
了一个自定义的非空值,否则$(prefix)
默认情况下它不会扩展为;因此,您的系统级gitattributes
文件应位于中/etc/
。
/usr/local/git/etc
似乎受到尊重的目录gitattributes
(至少受/usr/local/git/bin/git
),但没有/etc/git
。还有一个~/.config/git
目录包含GitHub似乎已生成的忽略项。我不清楚所有这些如何组合在一起。
/usr/local/git/
;如果是这样,/usr/local/git/etc/gitattributes
将是您系统范围内的gitattributes;请参阅我的答案中的“系统范围的gitattributes”部分。至于~/.config/git
,这就是您的全局gitattributes;请参阅我的答案中的“全局(用户级)gitattributes”部分。
etc
都将是系统范围的(或者至少是给定Git的系统范围的),而如果我已经将(或 )设置 为其他东西的话,则是各种各样的($XDG_CONFIG_HOME/git/...
或~/.configs/git/..
无关紧要)。例如,如果我将其设置为(viz。),那么它将用于我的“全局”(用户级别)设置。gitignore
core.attributesfile
core.excludesfile
/.gitattributes
~/.gitignore