Windows下Git多账号配置(附github最新上传)
前言
本人之前使用git未注意到多账户的管理,所以用起来比较繁琐,在网上几经搜索后发现现有的教程均存在不通用的情况,而且在去年10月github更新后使用git上传也和之前不同。为此整理了一份最新的Git多账号配置上传博文。
1. 生成git账号公钥秘钥
1.1 生成gitlab账号公钥秘钥
在C:\Users\Administrator\.ssh
(这个目录不绝对,因人而异)下打开git bash
或cmd
,执行命令ssh-keygen -t rsa -C user.email
,例如ssh-keygen -t rsa -C xxxxxxxxx@xxx.com
,然后命名为id_rsa_gitlab,输入密码(可以不设置,一直按回车)
1.2 生成oschina账号公钥秘钥
执行命令ssh-keygen -t rsa -C xxxxxxxxx@xxx.com
创建oschina对应的sshkey,命名为id_rsa_oschina。其余均和gitlab一致
1.2 生成github账号公钥秘钥
执行命令ssh-keygen -t rsa -C xxxxxxxxx@xxx.com
创建github对应的sshkey,命名为id_rsa_github。其余均和gitlab一致
2. 公钥拷贝及上传
2.1 秘钥位置存储
把上面得到的文件拷贝到git默认访问的.ssh
目录(win10在用户目录下,本文C:\Users\Administrator\.ssh
)
除了秘钥文件之外,config文件是后面的步骤中手动生产的,known_hosts文件是后续自动生产
的
2.2 config配置
在C:\Users\Administrator\.ssh
目录下创建一个config文本文件,每个账号配置一个Host节点。主要配置文件内容
# github-1 account
Host u1.github.com
HostName github.com
User user1
IdentityFile C:\\Users\\Administrator\\.ssh\\id_rsa_github1
PreferredAuthentications publickey
# github-2 account
Host u2.github.com
HostName github.com
User user2
IdentityFile C:\\Users\\Administrator\\.ssh\\id_rsa_github2
PreferredAuthentications publickey
# gitlab account
Host gitlab.com
HostName gitlab.com
User iJarmin_lab
IdentityFile C:\\Users\\Administrator\\.ssh\\id_rsa_gitlab
PreferredAuthentications publickey
# oschina account
Host git.oschina.net
HostName git.oschina.net
User username2
IdentityFile C:\\Users\\Administrator\\.ssh\\id_rsa_oschina
PreferredAuthentications publickey
配置项说明:
Host ##主机别名
HostName ##服务器真实地址
IdentityFile ##私钥文件路径
PreferredAuthentications ##认证方式
User ##用户名
将公钥上传到服务器
GitHub添加SSH key的方式如下图所示
git.oschina.net添加SSH key的方式如下图所示:
gitlab添加SSH key的方式如下图所示:
2.3 进行测试是否成功
2.3.1 测试github
ssh -T git@github.com
提示 you,re successfully authenticated,but Github does not provide shell access
2.3.2 测试gitlab
ssh -T git@gitlab.com
提示welcome to gitlab
2.3.3 测试oschina
ssh -T git@git.oschina.net
提示welcome to Git
2.4 配置账户的username和email
全局配置(任意位置执行)
首先一般仅需要一次配置时候,一般可以使用全局配置读取配置。加载的优先策略为先执行局部配置读取,再进行全局配置读取
>git config --global user.name "github's Name"
>git config --global user.email "github@xx.com"
>git config --list
为了保证上传的稳定,避免错乱,我们在使用时需要注意,如果一个网站有多个账户时,最好不要设置全局的 username 和 email
取消全局 username, email
>git config --global --unset user.name
>git config --global --unset user.email
如要在repo中使用 user1 进行操作,进入repo目录后,先设置username 和 email,再进行其他操作
>git config user.name "github's Name"
>git config user.email "github@xx.com"
同样的,如果想在repo中切换为 user2 进行操作,则重新设置username和email(同上)后,再进行其他操作
3.下载上传
测试成功之后就可以在电脑上同时使用git多多账号同时操作,互不影响了。例如,我们打开github上AndroidRotateAnim项目,复制其对应的clone命令入下图所示(SSH模式)
执行clone命令如下(无密码则直接回车):
确认项目已从gitlab上克隆到本地后进行编辑,接下来依次输入以下代码即可完成上传工作:
git add . (注:别忘记后面的.,此操作是把Test文件夹下面的文件都添加进来)
git commit -m "提交信息" (注:“提交信息”里面换成你需要,如“first commit”)
git push -u origin master (注:此操作目的是把本地仓库push到github上面,此步骤需要你输入帐号和密码)
4. 常见问题
如果出现github fatal: 'origin' does not appear to be a git repository
,则是没连上远程地址,为此可以通过以下操作来解决:
git remote -v
发现我的origin没有后面没跟地址
于是一出origin 然后再添加上去
git remote remove origin
然后找到你的项目的git地址,可以去这里复制过来
git remote add origin http:XXXXXXX.git
并再次
git remote -v
然后就可以push了
- 点赞
- 收藏
- 关注作者
评论(0)