【Git】一个主机配置多个GitHub账号(Windows,MacOS,Linux都适用)
1. 引言
我开始的需要求是投稿论文的时候由于是匿名审稿,而我又需要上传源代码,所以打算把代码提交到GitHub上,匿名审稿不能用暴露自己个人信息的账号,所以就新建了一个账号,但是当我commit的时候发现提交人依然是自己之前的账号信息,而当我push的时候出现no permission,所以就需要配置一下新账号的信息
我的环境是 windows 10,之前已经有了github账号,该账号的ssh已经配置,之前使用https和ssh都可以push,但是新账号没有配置所以没办法提交
下面我的方法使用ssh方式提交代码,需要配置新账号的公钥和私钥
2. 配置.ssh
文件
2.1 在.ssh文件夹目录下面生成公钥和私钥
windows中.ssh
文件的路径为:C:\Users\用户名\.ssh
生成公钥和私钥的命令为:ssh-keygen -t rsa -f id_rsa_new
,然后一直按回车就可以了,这个时候会在ssh文件夹目录下面生两个文件(公钥和私钥文件),如下图(其中以.pub结尾的文件是公钥,没有后缀的是私钥,config是自己创建的配置文件,know_hosts好像没用?):
2.2 将公钥复制粘贴到github的SSH and GPG keys中
- 首先创建进入github的setting页面,然后点击SSH and GPG keys,新建一个SSH keys
- 然后随便去一个名字,将生成的**.pub公钥**粘贴到下面:
3. 将私钥添加到本地的git账户中
3.1 添加两个私钥到本地git账户
ssh-agent bash ssh-add id_rsa_github # 之前已有的github账号信息 ssh-add id_rsa_new # 新生成的账号信息
其中
ssh-agent bash
(或eval $(ssh-agent)
)会启动一个进程在内存里管理这些私钥,可以把它理解成一个私钥管理中心
添加之后可以使用ssh-add -l
命令查看一下是否添加成功
3.2 创建config文件
自己在ssh文件夹新建一个txt文件,然后重命名为config,具体内容如下:
config文件中部分参数含义:
# Host: 主机别名
# HostName: 托管平台域名地址,如github.com
# IdentityFile : 指明上面User对应的identityFile路径
# User: 托管平台用户名
# Port: 端口号,可不填(如果不是默认22号端口则需要指定)
# PreferredAuthentications publickey
4. 测试是否连通
使用ssh -T测试一下:记住前面设置的hostname
出现 “Hi ……” 就说明新账号的公钥和私钥都配置成功了
5. 使用新账号提交代码
5.1 新建仓库
首先在新建的文件夹中初始化仓库: git init .
5.2 设置新仓库的用户信息
设置新账号的用户信息,因为你的电脑中git账号信息都是之前的,所有的仓库建立之后的账户信息都是默认之前的,所以需要在新仓库中设置新的用户名和邮箱,具体命令如下:
git config user.name "userName" # 你的用户名
git config user.email "email address" # 你的邮箱地址
5.3 设置新仓库的地址
之前都是配置ssh,所以这里添加仓库的ssh地址就可以(当然https地址也可以),修改ssh地址的hostname为config文件中设置host就可以了
git remote add ssh [URL]
对于你的新账号,这里的URL比如可以是:git@host:username/repository_name.git
(就是将下图中的github.com改成config文件中你新账号的hostname)
5.4 提交代码
最后就可以使用新账号的信息提交代码了,什么git add,git commit 都可以,最后git push ssh master
即可
参考:https://blog.51cto.com/u_4160094/2912836
⭐ 码字不易,如果对你有帮助,求三连支持!⭐