.git/config
может быть переопределено локально с помощью ~/.gitconfig
.
Таким образом, в рамках скрипта сборки, Makefile или обеспечения вы можете предложить изменение для пользователей в их ~/.gitconfig
или загрузить локальный скрипт .gitconfig
через git config
.
Например, создайте новый .gitconfig
с некоторыми настройками и загрузите его:
git config --local include.path "/path/to/.gitconfig"
или попросите пользователей иметь в своих ~/.gitconfig
эти строки:
[include]
path = .gitconfig
Если вы используете Vagrant как часть своего дистрибутива кода, вы можете загрузить git config из Vagrantfile
:
system('GIT_TRACE=1 git config --local include.path "$(git rev-parse --show-toplevel)/git/gitconfig"');
затем зафиксируйте вашу конфигурацию git в git/gitconfig
, поэтому каждый раз, когда пользователи запускают подготовку своей виртуальной машины, этот файл будет автоматически загружаться для их git на хост-машине (например, для принудительного отключения core.filemode
, поэтому Windows не будет иметь проблем с правами доступа к файлам.)
Для принудительного завершения концов строки для пользователей, вы должны использовать .gitattributes
, который должен работать «из коробки». Пример синтаксиса для использования Unix-подобных окончаний строк (LF
):
# Drupal git normalization
# @see https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html
# @see https://www.drupal.org/node/1542048
# Define text file attributes.
# - Treat them as text.
# - Ensure no CRLF line-endings, neither on checkout nor on checkin.
# - Detect whitespace errors.
# - Exposed by default in `git diff --color` on the CLI.
# - Validate with `git diff --check`.
# - Deny applying with `git apply --whitespace=error-all`.
# - Fix automatically with `git apply --whitespace=fix`.
*.css text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.html text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=html
*.js text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.json text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
# Auto-detect text files, ensure they use LF (not recommended).
#* text=auto eol=lf
# Define binary file attributes.
# - Do not treat them as text.
# - Include binary diff in patches instead of "binary files differ."
*.gz -text diff