入职新公司不久,由于公司是花名文化,要求公司的所有账户都使用自己的花名信息。公司使用的gitlab仓库管理代码,要求每个码农都使用公司的邮箱注册自己的gitlab账户。昨天被小组组长敲小窗,你的commit信息怎么是zhifei,不是seven(化名,本人花名不好听),于是我傻乎乎的改了gitlab里的profile个人信息,就这样开发push代码,1 week 后,我又被敲小窗了。。。没错,我的信息还是github账户。。。
大家一般在校园阶段开始接触最早代码托管仓库github,大部分百度给的方式就是
git config -g user.name ****
, git config -g user.email ****@**.com
然后生成个ssh key,github上设置一下,就这么傻傻的度过了好几年。
问题:github,gitlab信息傻傻分不清
公司项目使用gitlab账户,而个人在github上也有个人仓库代码,公司账户是花名,公司邮箱,github账户是个人邮箱。而git commit的信息,如果你没有专门设置,会直接使用全局的username useremail。
解决方案:
- 首先全局的github信息不需要变化,直接忽视。
- 项目目录下运行如下命令:
git config --local user.name 'seven' && git config --local user.email 'seven@xxx.com'
打开项目的根目录,.git目录下config文件的最后就会有你的配置信息了。
[user]
name = seven
email = seven@***.com
其实,这时候,test一下,你就会发现,现在push代码,commit信息就是刚才设置的最新name,email了。
- ssh 连接,加速你的push,pull。
最近push代码,每次都要输入username,password。苦恼,肯定是ssh密钥没有设置。
ssh key默认是在~/.ssh/目录下的,有两个文件id_rsa,id_rsa.pub两个文件。如果你的github之前设置过,那么一定存在这两个文件了。
设置gitlab的ssh key,首先生成上面的那两个文件,不过是另起炉灶,针对gitlab来一个。
ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitlab -C "seven@xxx.com"
注意:在上面运行这个命令的过程中,会询问你密码,记得直接enter,也就是设为empty,否则,你这里设置密码的话,后面每次pull或push的时候,都会要你输入密码,以获取id_rsa.gitlab。
那么怎么让你的系统知道选用哪个key文件呢,只需要一个config文件。
在命令行,运行touch ~/.ssh/config
文件。
然后,编辑内容,
Host gitlab.***.com
IdentityFile ~/.ssh/id_rsa.gitlab
User seven
配置后,就大功告成了。
后记:今天请教周边同事这个问题的时候,竟然发现,大家都认为是小事,自动忽略了这个问题,commit信息花名,github账户名,不一。好吧,我整理这个文档,只是为了给大家看。。。