创建多个git账号&修改git提交历史
因公司使用gitlab,账号为公司邮箱,自己也有个GitHub,账号为私人邮箱,要怎么做才能使用不同的账号push不同的仓库呢?
生成不同的ssh key:
1 | ssh-keygen -t rsa -f ~/.ssh/id_rsa_github -C "email@email.com" |
我把公司的命名为id_rsa,github的加了个后缀,然后将key复制到网站上。
1 | vi id_rsa_github.pub |
相信之前肯定设置了global的email和name,网上大部分说法都是讲global的设置删除,但也可以不删,只是在相对应的gitlab仓库下设置gitlab账号就好(我是global使用github账号,因为公司项目较少,需设置的仓库较少)
1 | // 全局 |
一旦使用其他账号commit/push过,想要修改git的提交记录(因为github的contribution不好看),可以用脚本来做:
1 | git filter-branch --env-filter ' |
存储为项目根目录下email.sh(第一次覆盖更新时)
1 | chmod +x email.sh |
若要在同一个项目再覆盖一次,执行后回提示
1 | Cannot create a new backup. |
要把refs/original/删掉:
1 | rm -rf .git/refs/original/ |
这样就能修改成功,然后push
1 | git push origin --force --all |