假设你有2个github账号: mygit1@gmail.com
和mygit2@gmail.com
,想要在同一个电脑上同时管理这两个账号下的仓库。方法如下:
- 打开git bash命令行,cd到
~/.ssh
目录下,分别执行如下命令生成两个账号的秘钥:
ssh-keygen -t rsa -C "mygit1@gmail.com"
ssh-keygen -t rsa -C "mygit2@gmail.com"
注:在生成mygit1和mygit2的秘钥时,第一步输入文件名分别为: id_rsa_mygit1
和id_rsa_mygit2
,并且后面两步不要输入密码(保持为空)。
-
把生成的两个账号的公钥内容(.pub后缀的文件内容)分别添加到两个账号的github配置信息里(
Settings -> SSH and GPG keys
) -
在
~/.ssh
目录下执行下面的命令添加账号:
ssh-add -D
ssh-add ~/.ssh/id_rsa_mygit1
ssh-add ~/.ssh/id_rsa_mygit2
ssh-add -l
注:如果执行ssh-add
命令报错:Could not open a connection to your authentication agent.
,则可以通过执行命令:ssh-agent bash
来解决。
- 创建一个文件:
~/.ssh/config
,其内容如下:
# mygit1
Host mygit1.github.com # 注:这里的域名可以随意写,它只是起一个标识的作用,只要保证不同账户的域名不同即可
HostName github.com # 这里的域名要保持为github.com
User mygit1
IdentityFile ~/.ssh/id_rsa_mygit1
# mygit2
Host mygit2.github.com
HostName github.com
User mygit2
IdentityFile ~/.ssh/id_rsa_mygit2
-
测试连接性(以mygit1账户为例,mygit2同理):
ssh -T git@mygit1.github.com
,如果输出如下内容则表明连接性OK:Hi mygit1! You've successfully authenticated, but GitHub does not provide shellaccess.
-
用
git init
命令创建本地仓库,然后设置局部git配置(以mygit1账户为例,mygit2同理):
git config user.name "mygit1"
git config user.email "mygit1@gmail.com"
- 可以在本地的一个已有的仓库上修改关联的远程仓库信息(以mygit1账户为例,mygit2同理):
git remote rm origin
git remote add origin git@mygit1.github.com:mygit1/mygit1.github.io.git
- 也可以在clone远程仓库时直接指定远程的仓库和github账户信息(以mygit1账户为例,mygit2同理):
git clone git@mygit1.github.com:mygit1/mygit1.github.io.git
- 拉取远程仓库代码、更新代码:
git pull origin master --allow-unrelated-histories
touch test.txt
git add -A
git commit -m "test push"
git push origin master
- That's all, enjoy it.
网友评论