我正在尝试设置我的git配置文件,以便我可以使用工作环境和个人环境。
这是我~.gitconfig
文件的内容(碰巧工作和私人分别存储在Github上):
[url "git@github.com:"]
insteadOf = https://github.com/
[core]
editor = vim
[includeIf "gitdir:~/go/src/github.com/work/"]
path = ~/.gitconfig-work
[includeIf "gitdir:~/go/src/github.com/fzd/"]
path = ~/.gitconfig-private
以下是两个文件的内容:
> cat ~/.gitconfig-work
[user]
email = workerID@company.com
name = realname
signingkey = 454684684654...
[commit]
gpgSign = true
> cat ~/.gitconfig-private
[user]
email = fzd@email.com
name = fzd
现在让我们漫游到这些目录中的一个:
> cd ~/go/src/github.com/work/
> git config --get user.email
>
> cd ~/go/src/github.com/fzd/
> git config --get user.name
>
以上都没有返回字符串。
我原本以为它会工作(这可以解决我麻烦的git配置)。
现在,来到“有趣”的部分: 这个配置最初是我的工作配置,只有工作设置正常。 当我尝试从github克隆存储库时,无论我在哪里,它都使用我的工作设置(自我尝试后,我还没有重新启动 - 我想这还不值得)。
有人能告诉我我的配置有什么问题吗?为什么它使用了工作参数?是否存在git配置缓存?
[编辑]
这是我的~/.ssh/config
文件的内容:
Host github.com
Hostname ssh.github.com
Port 443
Host *
ServerAliveInterval 10
AddKeysToAgent yes
IgnoreUnknown UseKeychain
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519_work
我确实拥有一个专用仓库的密钥对,但我不完全确定如何同时使用两个密钥。可能是像这样的方式。
work
repos很好用。也许问题是,现在我想使用fzd@email.com克隆~/go/src/github.com/fzd/
中的一个repo,而不必在命令行上编写它。这可行吗? 这将是我检查其他repos中是否获得了不同值的唯一方法。[[当我尝试在.../fzd
中克隆一个工作repo时,它可以很好地工作并使用我的工作ID]] - fzduser.name
/user.email
不会被使用。这些配置设置仅在您创建新的提交时使用。但它们不是凭据,不用于身份验证,也不用于克隆。克隆后,请进入新的仓库并测试git config --get user.email
。 - phd