0
点赞
收藏
分享

微信扫一扫

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,输入密码(可以不设置,一直按回车)

Windows下Git多账号配置(附github最新上传)_上传

1.2 生成oschina账号公钥秘钥

执行命令​​ssh-keygen -t rsa -C xxxxxxxxx@xxx.com​​创建oschina对应的sshkey,命名为id_rsa_oschina。其余均和gitlab一致

Windows下Git多账号配置(附github最新上传)_github_02

1.2 生成github账号公钥秘钥

执行命令​​ssh-keygen -t rsa -C xxxxxxxxx@xxx.com​​创建github对应的sshkey,命名为id_rsa_github。其余均和gitlab一致

Windows下Git多账号配置(附github最新上传)_gitlab_03

2. 公钥拷贝及上传

2.1 秘钥位置存储

把上面得到的文件拷贝到git默认访问的​​.ssh​​​目录(win10在用户目录下,本文​​C:\Users\Administrator\.ssh​​)

除了秘钥文件之外,config文件是后面的步骤中手动生产的,known_hosts文件是后续自动生产


Windows下Git多账号配置(附github最新上传)_github_04

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的方式如下图所示

Windows下Git多账号配置(附github最新上传)_github_05


git.oschina.net添加SSH key的方式如下图所示:

Windows下Git多账号配置(附github最新上传)_上传_06


gitlab添加SSH key的方式如下图所示:

Windows下Git多账号配置(附github最新上传)_上传_07

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​

Windows下Git多账号配置(附github最新上传)_上传_08

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模式)

Windows下Git多账号配置(附github最新上传)_git_09


执行clone命令如下(无密码则直接回车):

Windows下Git多账号配置(附github最新上传)_git_10


确认项目已从gitlab上克隆到本地后进行编辑,接下来依次输入以下代码即可完成上传工作:

git add .        (注:别忘记后面的.,此操作是把Test文件夹下面的文件都添加进来)
git commit -m "提交信息" (注:“提交信息”里面换成你需要,如“first commit”)
git push -u origin master (注:此操作目的是把本地仓库push到github上面,此步骤需要你输入帐号和密码)

Windows下Git多账号配置(附github最新上传)_上传_11


Windows下Git多账号配置(附github最新上传)_github_12


Windows下Git多账号配置(附github最新上传)_git_13

4. 常见问题

如果出现​​github fatal: 'origin' does not appear to be a git repository​​,则是没连上远程地址,为此可以通过以下操作来解决:

​git remote -v​​ 发现我的origin没有后面没跟地址

Windows下Git多账号配置(附github最新上传)_ssh_14

于是一出origin 然后再添加上去

git remote remove origin

然后找到你的项目的git地址,可以去这里复制过来

Windows下Git多账号配置(附github最新上传)_git_15

git remote add origin http:XXXXXXX.git

并再次

git remote -v

Windows下Git多账号配置(附github最新上传)_github_16


然后就可以push了

Windows下Git多账号配置(附github最新上传)_gitlab_17


举报

相关推荐

0 条评论