前言
最近工作上遇到了使用git+repo的情況,需要用公司的郵箱和域賬號名重新申請git賬號,而我本身在github上也有一些開源項(xiàng)目,這里就是記錄一下我是如何實(shí)現(xiàn)git多賬號登陸問題
取消git全局設(shè)置
很多同學(xué)照著網(wǎng)上的教程,都會對git進(jìn)行全局設(shè)置,例如
git config --global user.name "your_name"
git config --global user.email "your_email"
如果你多參與的項(xiàng)目都允許你用同一個用戶名和郵箱,這樣設(shè)置當(dāng)然沒問題,但是,一旦你進(jìn)入公司,估計(jì)是沒有自主選擇權(quán)利的,公司都會配置相應(yīng)的域賬號和郵箱,因此我們首先需要取消git的全局設(shè)置
git config --global --unset user.name
git config --global --unset user.email
針對每個項(xiàng)目,單獨(dú)設(shè)置用戶名和郵箱,設(shè)置方法如下:
git config user.name "your_name"
git config user.email "your_email"
說白了,也就是進(jìn)入到你的git項(xiàng)目相對根目錄下,然后執(zhí)行g(shù)it config設(shè)置記錄
SSH配置
- 我現(xiàn)在有兩個git項(xiàng)目,
公司和github
2.在~/.ssh目錄下,使用ssh-keygen -C "your_email" -t rsa生成公私秘鑰,命名分別為id_rsa_公司,id_rsa_github,公鑰的內(nèi)容需要分別上傳到git項(xiàng)目的服務(wù)器上 - 打開ssh-agent
這里如果你用的github官方的bash,ssh-agent -s,如果是其他的,比如msysgit,eval $(ssh-agent -s) - 添加私鑰
ssh-add ~/.ssh/id_rsa_公司
ssh-add ~/.ssh/id_rsa_gitlab
- 在~/.ssh目錄下創(chuàng)建config文件,進(jìn)行相應(yīng)配置:
# 公司
Host 公司地址.com
HostName 公司地址.com //這里填你們公司的git網(wǎng)址即可
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_公司
User xander
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
User Xander
老項(xiàng)目新添加.gitignore文件
首先為避免沖突需要先同步下遠(yuǎn)程倉庫
$ git pull
在本地項(xiàng)目目錄下刪除緩存
$ git rm -r --cached .
新建.gitignore文件
在項(xiàng)目的根目錄下面新建.gitignore文件并添加相應(yīng)的過濾規(guī)則
再次add所有文件
輸入以下命令,再次將項(xiàng)目中所有文件添加到本地倉庫緩存中
$ git add .
再次添加commit
這次commit是為了說明添加ignore文件的。
$ git commit -m "add ignore"
最后提交到遠(yuǎn)程倉庫即可
$ git push