使用 Github 和 Gitlab
Using Github and Gitlab
我的问题
我想使用我的私人电子邮件 a@gmail.com
在 Github 上提交,并使用公司电子邮件 me@company.com
提交到我们公司的 Gitlab,而不更改每次提交的 Git 配置。因此,当我在 Github 上提交时,它会链接到我的 Github 帐户,Gitlab 也是如此。
我已经做了什么
因此我创建了两个不同的 SSH 密钥并将它们与 Github 和 Gitlab 连接。我的文件夹 ~/.ssh/
中还有一个名为 config
的文件,其中包含:
Host github.com
HostName github.com
IdentityFile ~/.ssh/github
IdentitiesOnly yes
User KonstantinSchuette
Host gitlab.company.com
HostName gitlab.company.com
IdentityFile ~/.ssh/gitlab
IdentitiesOnly yes
User KonstantinSchuette
但是我的提交没有连接到我将密钥链接到的帐户。
我误会了什么
我认为 SSH 密钥用于在 Github 和 Gitlab 上使用不同帐户进行提交,因此它会覆盖配置。但事实并非如此。它们仅用于从不同的帐户访问不同的平台,而无需输入帐户的凭据。
解决方案
我需要为 Github 和 Gitlab 创建不同的文件夹,以便在 Github 和 Gitlab 上加载不同的配置Git同时进行实验室项目。因此只有 Github 的存储库在 Github 文件夹中,只有 Gitlab 存储库在 Gitlab 文件夹中。
我将 ~/.gitconfig
编辑为:
[includeIf "gitdir/i:~/Desktop/Github/"]
path=.gitconfig-Github
[includeIf "gitdir/i:~/Desktop/Gitlab/"]
path=.gitconfig-Gitlab
在与 .gitconfig
相同的目录中,我创建了 .gitconfig-Github
:
[user]
name=Dewey
email=a@gmail.com
还有一个.gitconfig-Gitlab
:
[user]
name=Dewey
email=me@company.com
我正在使用 VSCode,因此 includeIf
必须以 gitdir/i:
开头以关闭区分大小写。如果您不执行此步骤,则在您使用 VSCode.
时将不会加载您的配置
我在 VSCode 的问题板上找到了解决方案:https://github.com/Microsoft/vscode/issues/62921
现在一切都如我所愿。
我的问题
我想使用我的私人电子邮件 a@gmail.com
在 Github 上提交,并使用公司电子邮件 me@company.com
提交到我们公司的 Gitlab,而不更改每次提交的 Git 配置。因此,当我在 Github 上提交时,它会链接到我的 Github 帐户,Gitlab 也是如此。
我已经做了什么
因此我创建了两个不同的 SSH 密钥并将它们与 Github 和 Gitlab 连接。我的文件夹 ~/.ssh/
中还有一个名为 config
的文件,其中包含:
Host github.com
HostName github.com
IdentityFile ~/.ssh/github
IdentitiesOnly yes
User KonstantinSchuette
Host gitlab.company.com
HostName gitlab.company.com
IdentityFile ~/.ssh/gitlab
IdentitiesOnly yes
User KonstantinSchuette
但是我的提交没有连接到我将密钥链接到的帐户。
我误会了什么
我认为 SSH 密钥用于在 Github 和 Gitlab 上使用不同帐户进行提交,因此它会覆盖配置。但事实并非如此。它们仅用于从不同的帐户访问不同的平台,而无需输入帐户的凭据。
解决方案
我需要为 Github 和 Gitlab 创建不同的文件夹,以便在 Github 和 Gitlab 上加载不同的配置Git同时进行实验室项目。因此只有 Github 的存储库在 Github 文件夹中,只有 Gitlab 存储库在 Gitlab 文件夹中。
我将 ~/.gitconfig
编辑为:
[includeIf "gitdir/i:~/Desktop/Github/"]
path=.gitconfig-Github
[includeIf "gitdir/i:~/Desktop/Gitlab/"]
path=.gitconfig-Gitlab
在与 .gitconfig
相同的目录中,我创建了 .gitconfig-Github
:
[user]
name=Dewey
email=a@gmail.com
还有一个.gitconfig-Gitlab
:
[user]
name=Dewey
email=me@company.com
我正在使用 VSCode,因此 includeIf
必须以 gitdir/i:
开头以关闭区分大小写。如果您不执行此步骤,则在您使用 VSCode.
我在 VSCode 的问题板上找到了解决方案:https://github.com/Microsoft/vscode/issues/62921
现在一切都如我所愿。