我的~/.ssh/config
文件中确实有两个不同的 GitLab 帐户。它们都以不同的名称命名Host
,并引用Hostname
到gitlab.com
。
每次我在不同 GitLab 帐户的编码项目之间切换时,我必须执行以下操作:
$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/<ssh-key-for-GitLab-account-of-actual-project
我在这里读过eval 和 ssh-agent 命令起什么作用?,它与 Docker 有关,但就我而言,它只在我的本地机器上。
有没有办法,避免一直插入这两个命令?
答案1
我尝试过@JavIon 提供的方法:
https://medium.com/uncaught-exception/setting-up-multiple-gitlab-accounts-82b70e88c437
在我的系统上,我做了一些微调。
第一步:
进入您使用 Git 的本地目录。就我而言,我将 Git 与 GitLab 结合使用。
我的工作目录中有一些 git 存储库和一些常规文件和目录 - 在我的私人目录中也是如此。
我在每个目录中都创建了一个 .gitignore 文件。
工作:
#------------------------------------------#
# .gitconfig GitLab Work #
#------------------------------------------#
[user]
name = My name for commits at work
email = [email protected]
username = Work GitLab username
私人的:
#------------------------------------------#
# .gitconfig GitLab Private #
#------------------------------------------#
[user]
name = My name for commits at private
email = [email protected]
username = Private GitLab username
第二步:
进入你的主目录并打开 .gitconfig(如果没有,请创建一个)。
然后从你的目录中包含 .gitconfig 文件,但主目录中除外。
〜/ .gitconfig:
#-----------------------------------#
# .gitconfig Global #
#-----------------------------------#
#----------------- Work GitLab
[includeIf "gitdir:~/work/"]
path = ~/work/.gitconfig
#----------------- Private GitLab
[includeIf "gitdir:/~/private/"]
path = ~/private/.gitconfig
第三步:
进入本地 Git 存储库并在所有存储库中添加特定的 SSH 密钥。
ssh-add ~/.ssh/<your key>
对我来说,无需注销或重新启动即可完成此操作。