摘要
有时候我们需要在同一台机器上使用多个git账号,为了避免冲突,我们需要配置~/.ssh/config文件。
步骤一:用ssh-keygen命令生成一组新的id_rsa_new和id_rsa_new.pub。
ssh-keygen -t rsa -C "new email"
步骤二:配置~/.ssh/config文件,以我自己的机器为例。
#Default Git
Host defaultgit
HostName IP Address #域名也可
User think
IdentityFile ~/.ssh/id_rsa
#Second Git
Host secondgit
HostName IP Address #域名也可
User think
IdentityFile ~/.ssh/id_rsa_second
Host就是每个SSH连接的单独代号,IdentityFile告诉SSH连接去读取哪个私钥。
步骤三:执行ssh-agent让ssh识别新的私钥。
ssh-add ~/.ssh/id_rsa_new
以后,在clone或者add remote的时候,需要把config文件中的host代替git@remoteaddress中的remoteaddress。
同时,你可以通过在特定的repo下执行下面的命令,生成区别于全局设置的user.name和user.email。
git config user.name "newname"
git config user.email "newemail"
#git config --global --unset user.name 取消全局设置
#git config --global --unset user.email 取消全局设置
#在同一机器不同目录下克隆远程同一个repo
cd /home/user1
git clone git@defaultgit:xxx.git
cd /home/user2
git clone git@secondgit:xxx.git
上面的两条clone命令,虽然关联到同一个repo,却是通过不同ssh连接,当然也是不同的git账号。