苹果系统:sourcetree涉及多个github账号项目

步骤一:打开Mac上的“终端”应用,输入以下命令,查看.ssh目录下已有的密钥文件

ls ~/.ssh

如下图:

若新项目中用到的账号都跟以上的账号相关,可忽略以下部分,直接看步骤二

给新项目的账号生成公钥和私钥:

ssh-keygen -t rsa -C "你的新账号邮箱@example.com" -f ~/.ssh/id_rsa_xx

例如:新项目所在的邮箱为123456@qq.com,我的名字是张三,我一般执行的命令如下:

ssh-keygen -t rsa -C 123456@qq.com -f ~/.ssh/id_rsa_zs

你需要将123456@qq.com改成你自己的账号,

id_rsa_zs改成你自定义的,一般都是id_rsa_xx,这个xx是为了区别其它账号,完全自定义,便于你知道哪个公钥对应哪个项目即可

以上命令回车后,要求输入密码,如下:

我一般直接回车,或则你也可以设置你想要的密码再回车继续,一直回车,出现以下情况说明密钥生成成功

步骤二:将新公钥添加到新 GitHub 账号

使用以下命令复制想要的公钥,id_rsa_zs.pub,就是我刚生成的公钥,这里需要改成你自己的公钥文件名称

pbcopy < ~/.ssh/id_rsa_zs.pub

以上命令回车后出现以下情况则说明公钥内容复制成功,登录新GitHub账号后,在右上角头像 -> Settings -> SSH and GPG keys -> New SSH key,title:随便取,key:就是公钥内容

点击“Add SSH key”,添加成功

步骤三:关键一步(解决多账号冲突)

我的电脑上现在有三个 SSH公私钥。GitHub 通过 SSH 连接时,默认会优先使用id_rsa,这会导致推送时身份混乱,无法使用新账号。

你需要配置~/.ssh/config文件,告诉系统针对不同的仓库使用不同的密钥。

(1)、在终端编辑配置文件(如果没有则自动创建):

vi ~/.ssh/config

(2)、按i进入编辑模式,添加以下内容:

# 新账号(zs账号) Host github-zs HostName github.com User git IdentityFile ~/.ssh/id_rsa_zs

添加后如下图所示:

Ctrl+O保存,回车确认文件名,再按Ctrl+X退出。

(3)、最后,测试配置是否生效

ssh -T git@github-zs

执行以上命令输出下图所示,则说明配置成功

步骤四:在 SourceTree 中的正确操作

例如:

复制到的url为:git@github.com:xx/project.git,

需要改成:git@github-zs:xx/project.git

到此就可以正常克隆到远程项目了