Git использует неправильную идентификацию (файл .ssh / config не читается?) - PullRequest
4 голосов
/ 21 марта 2020

Я использую gitlab.com для работы в моей компании и github.com для моей личной работы. Я прочитал множество тем, множество тем о проблеме идентификации, и все же, я до сих пор не могу понять, почему это не работает от меня.

У меня есть файл ~/.ssh/config, как следует

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/perso_id_rsa

Host gitlab
  HostName gitlab.com
  User git
  IdentityFile ~/.ssh/id_rsa

И мастер ~/.gitconfig

[user]
    email = my_company_address
    name = my_company_name

[includeIf "gitdir:~/Workspace/perso"]
    path = ~/Workspace/perso/.gitconfig

И ~/Workspace/perso/.gitconfig

[user]
    email = my_perso_email
    name = my_pseudo

Когда я делаю коммиты из моего проекта perso в ~ / Workspace / perso / my_perso_project, автором коммита является адрес моей компании (коммит передается на github без проблем).

Может кто-нибудь помочь?

Спасибо

Ответы [ 2 ]

2 голосов
/ 21 марта 2020

Ваш includeif неверен. gitdir:~/Workspace/perso не является каталогом .git и не имеет флага поиска. См. git config документы для includeif,

Если шаблон заканчивается на /, ** будет добавлено автоматически. Например, шаблон foo / становится foo/**. Другими словами, это соответствует "foo" и всему внутри, рекурсивно.

Либо назовите специфицируемый c git dir, который вы проверяете, либо скажите Git, что вы имеете в виду любое git dir во всем этом поддереве:

[includeIf "gitdir:~/Workspace/perso/.git"]
        path = ~/Workspace/perso/.gitconfig

или

[includeIf "gitdir:~/Workspace/perso/**"]
        path = ~/Workspace/perso/.gitconfig

или

[includeIf "gitdir:~/Workspace/perso/"]
        path = ~/Workspace/perso/.gitconfig
0 голосов
/ 21 марта 2020

IncludeIf действительно поддерживается с Git 2.17.1 ( было введено в 2.13 )

Как отмечалось, ~/.ssh/config используется только для аутентификации, а не авторства.

Я бы go в ~ / Workspace / perso / my_perso_proje c и сделал:

git config --list --show-origin

Таким образом, вы знаете, какой файл будет устанавливать user.email.
Последний отображенный переопределяет другие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...