我在 GitHub 和 GitLab 中拥有帐户。我在 GitLab 中为我的帐户生成并添加了一个RSA密钥,但现在我需要在第二个项目中使用 GitHub 。
我知道GitLab和GitHub都使用git。请告诉我是否可以在一台机器上使用GitHub和GitLab?
答案 0 :(得分:15)
是的,你可以,你可以在它们之间共享相同的密钥(ssh密钥)或为每个git服务器创建一个新密钥。
如果您有多个身份文件(在您的情况下,一个用于gitlab,另一个用于github),请创建一个SSH配置文件来存储您的各种身份。
此示例中使用的别名条目的格式为:
Host alias HostName github.com IdentityFile ~/.ssh/identity
要为两个身份(workid和personalid)创建配置文件,您可以执行以下操作:
Open a terminal window.
Edit the ~/.ssh/config file.
如果您没有配置文件,请创建一个 为每个标识组合添加别名,例如:
Host github
HostName github.com
IdentityFile ~/.ssh/github
Host gitlab
HostName gilab.com
IdentityFile ~/.ssh/gitlab
通过这种方式,您可以拥有任意数量的帐户,每个帐户都附加了一个不同的ssh密钥。
答案 1 :(得分:6)
绝对是的!现在你使用ssh
作为传输,你已经完成了一半的工作。
GitHub和Gitlab都是远程(中央)存储库。这一切都取决于您用来推送提交的remote
。
如果您已经在GitHub上创建了一个项目并克隆了它,您将看到远程(默认情况下为origin
)指向GitHub链接。在项目目录中运行$ git remote -v
进行检查。
如果你想在GitLab上推送同一个项目,你所要做的就是添加另一个名字不同的remote
。
$ git remote add <different-remote-name> <gitlab-remote-link>
现在,只要您想要更新特定的遥控器,只需按下即可。
答案 2 :(得分:4)
要使用两个不同的名称,必须将SSH密钥添加到两个Git服务器(Bitbucket,Gitlab或Github),并使用凭据配置git。 如果两个帐户使用相同的电子邮件地址,则可以使用:
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
如果帐户使用不同的电子邮件,则必须使用本地配置文件设置每个存储库
git config --local user.name "Your Name"
git config --local user.email "email@example.com"
本地配置将覆盖全局配置。因此,您可以为最常用的帐户使用全局配置。