Git 使用了错误的标识(.ssh/config 文件未读?)
Git uses the wrong identity (.ssh/config file not read ?)
我在公司工作时使用 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
当我在 ~/Workspace/perso/my_perso_project 中从我的个人项目进行提交时,提交作者是我的公司地址(提交被毫无问题地推送到 github)。
有人可以帮忙吗?
谢谢
IncludeIf
确实支持 Git 2.17.1 (it was introduced in 2.13)
如评论所述,~/.ssh/config
仅用于身份验证,不用于作者身份。
我会去 ~/Workspace/perso/my_perso_projec 做:
git config --list --show-origin
这样,您就知道哪个文件将设置 user.email
。
最后显示的将覆盖其他。
你的includeif是错误的。 gitdir:~/Workspace/perso
不是 .git
目录,并且没有搜索标志。请参阅 git config
文档了解 includeif,
If the pattern ends with /
, **
will be automatically added. For example, the pattern foo
/ becomes foo/**
. In other words, it matches "foo" and everything inside, recursively.
要么命名您正在检查的特定 git 目录,要么告诉 Git 您指的是整个子树中的任何 git 目录:
[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
我在公司工作时使用 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
当我在 ~/Workspace/perso/my_perso_project 中从我的个人项目进行提交时,提交作者是我的公司地址(提交被毫无问题地推送到 github)。
有人可以帮忙吗?
谢谢
IncludeIf
确实支持 Git 2.17.1 (it was introduced in 2.13)
如评论所述,~/.ssh/config
仅用于身份验证,不用于作者身份。
我会去 ~/Workspace/perso/my_perso_projec 做:
git config --list --show-origin
这样,您就知道哪个文件将设置 user.email
。
最后显示的将覆盖其他。
你的includeif是错误的。 gitdir:~/Workspace/perso
不是 .git
目录,并且没有搜索标志。请参阅 git config
文档了解 includeif,
If the pattern ends with
/
,**
will be automatically added. For example, the patternfoo
/ becomesfoo/**
. In other words, it matches "foo" and everything inside, recursively.
要么命名您正在检查的特定 git 目录,要么告诉 Git 您指的是整个子树中的任何 git 目录:
[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