入職新公司不久,由于公司是花名文化,要求公司的所有賬戶都使用自己的花名信息。公司使用的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賬戶名,不一。好吧,我整理這個文檔,只是為了給大家看。。。