Где я должен разместить свой глобальный файл gitattributes?

Я вижу, что есть (несмотря на отсутствие документации) способ, чтобы установить Git атрибуты в глобальном масштабе; но я не знаю, где разместить необходимый файл gitattributes. Инструкции говорят, что они принадлежат

$(prefix)/etc/gitattributes

Но где $(prefix)? В частности, где бы это было для OS X (с Git в /usr/local/git/bin/git)? В качестве альтернативы (или дополнительно) будет ~/.gitattributes работать?

Ответ 1

Глобальные и общесистемные настройки

В вашем вопросе есть некоторая двусмысленность. В контексте Git "глобальный" обычно означает "пользовательский уровень"; другими словами, глобальные настройки влияют на все репозитории для одного конкретного пользователя (активного). Напротив, общесистемный параметр влияет на все репозитории для всех пользователей машины.

Gitattributes уровня репозитория

(Я упоминаю это только для полноты.)

Согласно соответствующему разделу книги Pro Git,

Если вы хотите воздействовать только на один репозиторий (т. $GIT_DIR/info/attributes файлам, $GIT_DIR/info/attributes к $GIT_DIR/info/attributes процессу одного пользователя для этого репозитория), то атрибуты следует поместить в $GIT_DIR/info/attributes.

$GIT_DIR обычно расширяется до <path-to-repo-root-directory>/.git.

Глобальные (на уровне пользователя) gitattributes

Согласно соответствующему разделу книги Pro Git,

Атрибуты, которые должны влиять на все репозитории для одного пользователя, должны быть помещены в файл, указанный core.attributesfile конфигурации core.attributesfile [...]. Его значение по умолчанию - $XDG_CONFIG_HOME/git/attributes. Если $XDG_CONFIG_HOME либо не установлен, либо пуст, вместо него используется $HOME/.config/git/attributes.

Вы также можете запустить следующую команду,

git config --global core.attributesfile <path>

указать Git на пользовательский путь <path> для вашего глобального файла gitattributes, например ~/.gitattributes.

Общесистемные gitattributes

Согласно соответствующему разделу книги Pro Git,

Атрибуты для всех пользователей в системе должны быть помещены в файл $(prefix)/etc/gitattributes.

что, естественно, вызывает вопрос:

[...] Но где $(prefix)?

Смотрите, что такое $ (префикс) для $ (префикс)/etc/gitconfig? за ответ. Если вы не присвоили prefix пользовательское непустое значение, $(prefix) по умолчанию расширяется до нуля; следовательно, ваш общесистемный файл gitattributes должен находиться в /etc/.