Работа с несколькими Gitconfig
Эта статья будет кратким советом, если вы используете несколько gitconfig на одной локальной машине. Например, если вы работаете с Gitlab/Bitbucket/Github с разными адресами электронной почты/именем пользователя/gpgsign или работаете со своей личной и рабочей учетной записью git на одном компьютере.
Настройка каталога Gitconfig
Это имя каталога может быть любым, но ради соглашения об именах давайте назовем его ~/.gitconfig.d/
.
$ mkdir -p "$HOME/.gitconfig.d/" && cd "$_"
$ pwd
/Users/clavianus.juneardo/.gitconfig.d
Настройка каждого Gitconfig
Теперь вы создали каталог, допустим, вы хотите установить свою учетную запись personal
и work
:
Настройка личного Gitconfig
$ git config --file=personal user.name "foo"
$ git config --file=personal user.email " foo@gmail.com "
$ git config --file=personal core.editor "vim"
...
С помощью --file=personal
флага gitconfig будет настроен внутри personal
файла.
$ cat personal
[user]
name = foo
email = foo@gmail.com
[core]
editor = vim
Теперь давайте проделаем то же самое с вашей рабочей учетной записью.
Настройка работы Gitconfig
$ git config --file=work user.name "foo bar"
$ git config --file=work user.email " foo@company.com "
$ git config --file=work user.signingKey "ABCDEF012345"
$ git config --file=work commit.gpgsign true
$ git config --file=work core.editor "vim"
...
$ cat work
[user]
name = foo bar
email = foo@company.com
signingKey = ABCDEF012345
[commit]
gpgsign = true
[core]
editor = vim
Теперь вы установили обе свои учетные записи. Тогда как переключаться между каждым gitconfig?
Допустим, вы разместили весь каталог git вашей компании по адресу, ~/Works
а свой — по адресу ~/Personals
. Вы можете легко переключиться, настроив глобальный gitconfig с помощью includeIf
.
cat <<EOF > ~/.gitconfig
[includeIf "gitdir:~/Works/"]
path = ~/.gitconfig.d/work
[includeIf "gitdir:~/Personals/"]"
path = ~/.gitconfig.d/personal
EOF
Вывод
Теперь каждый раз, когда вы внутри ~/Works/
, вы используете ~/.gitconfig.d/work
, а когда вы внутри ~/Personals/
, вы используете ~/.gitconfig.d/personal
.
Вы можете проверить, правильно ли загружается gitconfig, просто выполнив git config user.email
команду и увидев, какая электронная почта появляется.