Git多账号登陆
取消git全局设置
- git config --global user.name "your_name"
- git config --global user.email "your_email"
- git config --global --unset user.name
- git config --global --unset user.email
- mkdir ~/test // git检出目录
- cd ~/test
- git init
- git config user.name "your_name"
- git config user.email "your_email"
SSH配置
- #第一个git项目账号
- Host first
- HostName test.com #这里需要用真实的项目检出hostname,为了项目安全,我这里随意写的
- User A
- IdentityFile ~/.ssh/id_rsa_first
- #第二个git项目账号
- Host second
- HostName test2.com
- User B
- IdentityFile ~/.ssh/id_rsa_second
- mkdir project && cd project
- git init
- git config user.name "A"
- git config user.email "C"
- git remote add first $giturl
- git pull first master
- git push first $branch
-
先假设我有两个账号,一个是github上的,一个是公司gitlab上面的。先为不同的账号生成不同的ssh-key
ssh-keygen -t rsa -f ~/.ssh/id_rsa_work -C xxx@gmail.com
然后根据提示连续回车即可在~/.ssh目录下得到id_rsa_work和id_rsa_work.pub两个文件,id_rsa_work.pub文件里存放的就是我们要使用的key
ssh-keygen -t rsa -f ~/.ssh/id_rsa_github -C xxx@gmail.com
然后根据提示连续回车即可在~/.ssh目录下得到id_rsa_github和id_rsa_github.pub两个文件,id_rsa_gthub.pub文件里存放的就是我们要使用的key
-
把id_rsa_xxx.pub中的key添加到github或gitlab上,这一步在github或gitlab上都有帮助,不再赘述
-
编辑
~/.ssh/config
,设定不同的git 服务器对应不同的key
1
2
3
4
5
6
7
8
9
10
11
12
|
|
编辑完成后可以使用命令 ssh -vT git@github.com
看看是不是采用了正确的id_rsa_github.pub文件
这样每次push的时候系统就会根据不同的仓库地址使用不同的账号提交了
- 从上面一步可以看到,ssh区分账号,其实靠的是HostName这个字段,因此如果在github上有多个账号,很容易的可以把不同的账号映射到不同的HostName上就可以了。比如我有A和B两个账号, 先按照步骤一生成不同的key文件,再修改
~/.ssh/config
内容应该是这样的。
1
2
3
4
5
6
7
8
9
10
11
12
|
|
同时你的github的repo ssh url就要做相应的修改了,比如根据上面的配置,原连接地址是:
git@github.com:testA/gopkg.git
那么根据上面的配置,就要把github.com
换成A.github.com
, 那么ssh解析的时候就会自动把testA.github.com
转换为 github.com
,修改后就是
git@A.github.com:testA/gopkg.git
直接更改 repo/.git/config
里面的url即可
这样每次push的时候系统就会根据不同的仓库地址使用不同的账号提交了
相关文章
- [环境搭建] git push代码不再支持账号密码登陆
- Git分支使用场景
- 解决Git - git push origin master 报错
- Git(二)使用git管理文件版本(TortoiseGit )
- 在Windows平台下使用Gitblit搭建Git服务器图文解说
- 使用 Gitea 快速搭建私有 Git 版本控制服务
- Git 学习笔记——git checkout
- Git应用--04遇到冲突解决办法git stash(转载)
- 浅析Git Subtree的原理与实际应用:git subtree是什么、子仓库与仓库共用、共用代码需求常规处理方式及为什么使用git subtree以及如何使用Git Subtree在多个Git项目间双向同步子项目
- 浅析git rebase理解
- 【Git】gitblit搭建git服务器-开机自启-Mac版
- Git错误:Incorrect username or password ( access token )
- git log
- git报错:Reinitialized existing Git repository in ...解决方法
- git:手把手建立远程Git仓库并完成面目初始提交
- Git - 使用BitBucket和SourceTree进行源代码管理遇到POST git-receive-pack (chunked)
- git 本地提交后如果让服务器上的GIT 自动更新拉取
- git远程上传文件