同一台主机使用不同的 git 帐号
2017-11-02 本文已影响0人
_Lyux
已经试过, 该方法只在 ubuntu 上可以施行, mac 和 windows 都还需要调其他配置.
假设原有帐号为 account1, 想要在同一台电脑上使用的第二个帐号为 account2.
按下面步骤配置.
生成新的密钥对
注意别把之前的密钥对覆盖了就行. 要做到不把原来的密钥对覆盖, 有两种方法:
- 一种是在另一个目录生成这对密钥, 只需要 cd 到相应目录即可;
- 一种是在生成密钥对的时候, 有个地方提示输入保存密钥对的文件名, 起个其他名字即可.
下面是选了另一个目录来存储新密钥, ssh-keygen
命令时一路回车即可:
cd /path/for/new/ssh_key
ssh-keygen -t rsa -b 4096 -C "account2@my_pc"
cat /path/for/new/ssh_key/id_rsa.pub
到 gerrit 网站, 登录 account2, 把上面命令生成的公钥配置到该帐号上.
下载代码
使用原有命令下载代码, 不用考虑是用哪个帐号下载的, 只要能下载成功即可.
gitclone.sh project_name
修改项目配置
先执行下面的命令, 把新生成的那个私钥指定给该项目:
cd project_dir
git config http.sslKey /path/for/new/ssh_key/id_rsa
注意上面命令中指定的是私钥, 就是不带 .pub
后缀的那个.
然后用文本编辑器打开项目下的 .git/config
文件, 把里面所有的 account1 字符串替换为 account2.
验证
理论上来说, 现在在 project_dir 这个项目目录内, 使用 git 就已经是在用 account2 操作了. 可以用下面的命令生成一个无用的提交, 验证一下:
cd project_dir
echo "" >> .gitignore
git add .gitignore
git commit -m "change git ignore file"
gitpush.sh
上面命令只是在 .gitignore 文件里追加了一个空行, 然后提交该修改. push 成功后, 可在 gerrit 网站上查看该提交的 owner 是否是 account2. 如是, 则已修改成功.
注:
git push
命令不区分帐号, 格式不变.
gitpush.sh
脚本不区分帐号, 不需要修改, 可直接使用.