目的 链接到标题
我有多个git账户下的多个不同的仓库。我需要能够在这两个账户之间自由地切换。
准备工作 链接到标题
必要的文件 链接到标题
首先打开你的用户目录下的.ssh目录(~/.ssh)
在这个目录下新建一个名为config的文本文件(没有文件后缀)
内容大致如下:
Host github1
HostName github.com
User git
IdentityFile ~/.ssh/gh_account_1
Host github2
HostName github.com
User git
IdentityFile ~/.ssh/gh_account_2
其中,这两个Host字段可以理解成分别代表两个Github账户。
之后,你需要为两个账户分别建立自己的ssh密钥和公钥。(即在上述文本中提到的IdentityFile字段)
在.ssh目录下,执行以下命令
ssh-keygen -t rsa -P "" -f <文件名称>
之后会在.ssh目录下生成<文件名称>(密钥)文件和<文件名称>.pub(公钥)文件。
上传公钥 链接到标题
这里我使用的Git平台为Github,所以需要到Github上上传公钥。
打开Settings,点击头像,点击Settings
新建一个SSH key

把刚刚为这个账号生成的公钥的内容粘贴进去,Key type使用默认选项(Authentication Key),Title随意填写。
另外的账户也是同理
指定使用的账户 链接到标题
接下来需要给Git仓库指定你使用的账户。
克隆仓库 链接到标题
如果是从云端克隆一个仓库,应执行:
git clone github1:<UserName>/<RepoName>
为已存在仓库修改远程地址 链接到标题
在.git目录所在目录下打开终端,执行
git remote set-url origin github1:<UserName>/<RepoName>
设置正确的作者身份 链接到标题
Git中会存储作者的用户名和邮箱地址。
切换到.git目录所在目录下,执行
git config user.name <UserName>
git config user.email <example@example.com> # 注册到Github的那个
Update 1/27/2024:
补充一下,如果是用的Github,那么设置作者身份这里UserName就是你的Github名称,email这里建议使用Github提供的邮箱地址。具体请打开https://github.com/settings/emails,有一段文字
This email will not be used as the 'from' address for web-based Git operations, e.g., edits and merges. We will instead use **blablabla@users.noreply.github.com**.
这一部分提到的内容如果不设置,之后提交Commit的时候可能会把Commit的活动记录在其他账号上。