今天遇到一个git相关的问题。我们需要接手甲方的项目并跟甲方的一个小伙伴一起协同开发。别人提供的VPN只能在我们公司指定的一台电脑“跳板机”上登录,并且他们只提供一个git账号给我们,而我们这边也需要多人协同开发。我们最后做的方案是“跳版机”上的用甲方git账号拉下来,然后推到我们自己搭建的gitLab上。即:
使用gitee.com模拟多个账号,多个远程仓库。
关键步骤一:切换“跳板机”上git账号信息
“跳板机”是公用设备,多个项目git账号信息不一样,并且甲方提供的git账号信息跟我们自己搭建的账号信息也不一样,所以要有切换账号信息操作。
主要修改用户名、email两个信息。
查看当前git账号信息:
git config user.name
结果如下:
linxzdeMacBook-Pro:~ linxz$ git config user.name
streamlet
linxzdeMacBook-Pro:~ linxz$
查看当前git邮箱信息:
git config user.email
结果如下:
linxzdeMacBook-Pro:~ linxz$ git config user.email
497490337@qq.com
linxzdeMacBook-Pro:~ linxz$
修改账号信息:
git config --global user.name 'linxiaozhang'
修改email信息:
git config --global user.email '2865114418@qq.com'
重新查看结果如下:
linxzdeMacBook-Pro:~ linxz$ git config --global user.name 'linxiaozhang'
linxzdeMacBook-Pro:~ linxz$ git config --global user.email '2865114418@qq.com'
linxzdeMacBook-Pro:~ linxz$ git config user.email
2865114418@qq.com
linxzdeMacBook-Pro:~ linxz$ git config user.name
linxiaozhang
linxzdeMacBook-Pro:~ linxz$
可以看到信息已经修改。
重点:如果想彻底修改该设备上的账号密码,需要修改钥匙串。
mac:
windows上(未验证):
关键步骤二:“跳板机”添加添加多个远程仓库
查看原来项目的远程仓库,进入根目录,输入:
git remote -v
结果如下:
origin https://gitee.com/XX主/seconds_understand.git (fetch)
origin https://gitee.com/Linxiaozhang/seconds_understand.git (push)
只有一个远程仓库,在我们的gitLab上新建项目
我们添加的时候不能直接这么add新的远程仓库,不然提交的时候都是origin,不好区别。需要新建一个名字NewReposity:
git remote add NewReposity https://gitee.com/paomiao/helloe-app.git
查看结果:
git remote -v
结果如下:
NewReposity https://gitee.com/paomiao/helloe-app.git (fetch)
NewReposity https://gitee.com/paomiao/helloe-app.git (push)
origin https://gitee.com/Linxiaozhang/seconds_understand.git (fetch)
origin https://gitee.com/Linxiaozhang/seconds_understand.git (push)
由此可以看到这个项目已经关联了两个远程仓库。
推送项目到新的远程仓库上:
git push -u NewReposity
结果如下:
Enumerating objects: 7891, done.
Counting objects: 100% (7891/7891), done.
Delta compression using up to 12 threads
Compressing objects: 100% (4989/4989), done.
Writing objects: 100% (7891/7891), 50.47 MiB | 35.28 MiB/s, done.
Total 7891 (delta 3149), reused 5178 (delta 1791)
由此可以看出已经正常推送到另外一端上去了。