Git 多用戶配置

一隘梨、引言
一般來說尤辱,安裝好 git 后锐锣,我們都會配置一個全局的 config 信息蛮寂,就像這樣:

git config --global user.name "jitwxs" // 配置全局用戶名,如 Github 上注冊的用戶名
git config --global user.email "jitwxs@foxmail.com" // 配置全局郵箱驮吱,如 Github 上配置的郵箱

但是你可能會碰到需要在一臺電腦上配置多個用戶信息的需求茧妒。此時就不能夠用一個全局配置搞定一切了。

比如因為我的個人電腦出了問題左冬,我想要提交我的個人項目時嘶伟,只能用公司配的電腦去提交。而公司的電腦配置的是私有的 gitlab 倉庫,而我自己的項目存儲在 github 上惠豺。這兩個倉庫不僅倉庫地址不一樣莹弊,倉庫的用戶名和郵箱都不一樣。

二铸鹰、配置多用戶
本文將配置分別是 github 以及 gitlab 上的兩個用戶,并分別在它們所屬的項目上進行 git 操作皂岔,這差不多就是配置多用戶的大部分操作了蹋笼。
2.1 清除全局配置
在正式配置之前,我們先得把全局配置給清除掉(如果你配置過的話)躁垛,執(zhí)行命令:
git config --global --list
這會列出所有已經(jīng)配置的全局配置剖毯,如果你發(fā)現(xiàn)其中有 user.name 和 user.email 信息,請執(zhí)行以下命令將其清除掉:

git config --global --unset user.name
git config --global --unset user.email
2.2 生成鑰對
鑰對的保存位置默認在 ~/.ssh 目錄下教馆,我們先清理下這個目錄中已存在的鑰對信息逊谋,即刪除其中的 id_rsa、id_rsa.pub 之類的公鑰和密鑰文件土铺。

首先我們開始生成 github 上的倉庫鑰對胶滋,通過 -C 參數(shù)填寫 github 的郵箱:

ssh-keygen -t rsa -C “jitwxs@foxmail.com”
按下 ENTER 鍵后,會有如下提示:

Generatingpublic/privatersa key pair.Enter fileinwhich to save the key (/Users/jitwxs/.ssh/id_rsa):
在這里輸入公鑰的名字悲敷,默認情況是叫 id_rsa究恤,為了和后面的 gitlab 配置區(qū)分,這里輸入 id_rsa_github后德。輸入完畢后部宿,一路回車,鑰對就生成完畢了瓢湃。

下面開始生成 gitlab 上的倉庫鑰對理张,步驟和上面一樣:

ssh-keygen -t rsa -C “l(fā)emon@test.com”
生成的公鑰名就叫做:id_rsa_gitlab。

2.3 添加 SSH Keys
我相信你既然都看到這篇文章了箱季,你一定掌握了如何將公鑰添加到 SSH Keys 中涯穷。請將 id_rsa_github.pub 和 id_rsa_gitlab.pub 內(nèi)容分別添加到 github 和 gitlab 的 SSH Keys 中,這里就不啰嗦了藏雏。

2.4 添加私鑰
在上一步中拷况,我們已經(jīng)將公鑰添加到了 github 或者 gitlab 服務器上作煌,我們還需要將私鑰添加到本地中,不然無法使用赚瘦。添加命令也十分簡單粟誓,如下:

ssh-add ~/.ssh/id_rsa_github // 將 GitHub 私鑰添加到本地
ssh-add ~/.ssh/id_rsa_gitlab // 將 GitLab 私鑰添加到本地
添加完畢后,可以通過執(zhí)行 ssh-add -l 驗證下起意,如果都能顯示出來和下面一樣鹰服,就 OK 了。

ssh-add -l
2048 SHA256:mXVNxWHZsZpKOnHlPslF2jXAWR+jc7M6P5hYbrCo jitwxs@foxmail.com (RSA)
2048 SHA256:Blhp3+Hx5mp9HDivFjDuwc/PaQ8ux45TRa6nTsfIe0PEz4 lemon@test.com (RSA)
2.5 管理密鑰
通過以上步驟揽咕,公鑰悲酷、密鑰分別被添加到 git 服務器和本地了。下面我們需要在本地創(chuàng)建一個密鑰配置文件亲善,通過該文件设易,實現(xiàn)根據(jù)倉庫的 remote 鏈接地址自動選擇合適的私鑰。

編輯 ~/.ssh 目錄下的 config 文件蛹头,如果沒有顿肺,請創(chuàng)建。

vim ~/.ssh/config
配置內(nèi)容如下:

HostName github.com
User jitwxs
IdentityFile ~/.ssh/id_rsa_github

Host gitlab
HostName gitlab.mygitlab.com
User lemon
IdentityFile ~/.ssh/id_rsa_gitlab

該文件分為多個用戶配置渣蜗,每個用戶配置包含以下幾個配置項:

Host:倉庫網(wǎng)站的別名屠尊,隨意取
HostName:倉庫網(wǎng)站的域名(PS:IP 地址應該也可以)
User:倉庫網(wǎng)站上的用戶名
IdentityFile:私鑰的絕對路徑

可以用 ssh -T 命令檢測下配置的 Host 是否是連通的:

ssh -T git@github
Hi jitwxs! You've successfully authenticated, but GitHub does not provide shell access.
ssh -T git@gitlab
Welcome to GitLab, @lemon!

當然不用 Host 用 HostName 也是一樣的:

ssh -T git@github.com
Hi jitwxs! You've successfully authenticated, but GitHub does not provide shell access.
ssh -T git@gitlab.mygitlab.com
Welcome to GitLab, @lemon!
2.6 倉庫配置
恭喜你!完成以上配置后耕拷,其實你已經(jīng)基本完成了所有配置讼昆。分別進入附屬于 github 和 gitlab 的倉庫,此時都可以進行 git 操作了斑胜。但是別急控淡,如果你此時提交倉庫修改后嫌吠,你會發(fā)現(xiàn)提交的用戶名變成了你的系統(tǒng)主機名止潘。

這是因為 git 的配置分為三級別,System —> Global —>Local辫诅。System 即系統(tǒng)級別凭戴,Global 為配置的全局,Local 為倉庫級別炕矮,優(yōu)先級是 Local > Global > System么夫。

因為我們并沒有給倉庫配置用戶名,又在一開始清除了全局的用戶名肤视,因此此時你提交的話档痪,就會使用 System 級別的用戶名,也就是你的系統(tǒng)主機名了邢滑。

因此我們需要為每個倉庫單獨配置用戶名信息腐螟,假設我們要配置 github 的某個倉庫,進入該倉庫后,執(zhí)行:

git config --local user.name "jitwxs"
git config --local user.email "jitwxs@foxmail.com"
執(zhí)行完畢后乐纸,通過以下命令查看本倉庫的所有配置信息:

git config --local --list
至此你已經(jīng)配置好了 Local 級別的配置了衬廷,此時提交該倉庫的代碼,提交用戶名就是你設置的 Local 級別的用戶名了汽绢。
————————————————
原文鏈接:https://blog.csdn.net/yuanlaijike/article/details/95650625

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吗跋,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子宁昭,更是在濱河造成了極大的恐慌跌宛,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件积仗,死亡現(xiàn)場離奇詭異秩冈,居然都是意外死亡,警方通過查閱死者的電腦和手機斥扛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門入问,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人稀颁,你說我怎么就攤上這事芬失。” “怎么了匾灶?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵棱烂,是天一觀的道長。 經(jīng)常有香客問我阶女,道長颊糜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任秃踩,我火速辦了婚禮衬鱼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘憔杨。我一直安慰自己鸟赫,他們只是感情好,可當我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布消别。 她就那樣靜靜地躺著抛蚤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪寻狂。 梳的紋絲不亂的頭發(fā)上岁经,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天,我揣著相機與錄音蛇券,去河邊找鬼缀壤。 笑死朽们,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的诉位。 我是一名探鬼主播骑脱,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼苍糠!你這毒婦竟也來了叁丧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤岳瞭,失蹤者是張志新(化名)和其女友劉穎拥娄,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瞳筏,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡稚瘾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了姚炕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摊欠。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖柱宦,靈堂內(nèi)的尸體忽然破棺而出些椒,到底是詐尸還是另有隱情,我是刑警寧澤掸刊,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布免糕,位于F島的核電站,受9級特大地震影響忧侧,放射性物質(zhì)發(fā)生泄漏石窑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一蚓炬、第九天 我趴在偏房一處隱蔽的房頂上張望松逊。 院中可真熱鬧,春花似錦试吁、人聲如沸棺棵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至母怜,卻和暖如春余耽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背苹熏。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工碟贾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留币喧,地道東北人。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓袱耽,卻偏偏與公主長得像杀餐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子朱巨,可洞房花燭夜當晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容

  • git多賬戶設置解決方法總結(jié)和記錄史翘。 場景:在個人電腦上用不同用戶提交到不同的git遠程倉庫上,尤其是公司代碼和私...
    RICKYMAN閱讀 1,580評論 0 0
  • 第一部分:Git的基本操作 初始化操作 $ git config -global user.name #設置提交...
    莊欲以莘閱讀 1,917評論 0 4
  • 正文 在~/.ssh/下創(chuàng)建config冀续,執(zhí)行命令vim ~/.ssh/config,如果已經(jīng)創(chuàng)建了就編輯琼讽,博主的...
    AgoniNemo閱讀 631評論 0 0
  • 首先,需要準備好對Git的全局用戶進行配置洪唐。在初次安裝Git時钻蹬,往往會使用如下的命令配置全局用戶名和郵箱: git...
    GorgeousXie閱讀 2,137評論 0 5
  • 文章作者:Tyan博客:noahsnail.com 在Git使用中經(jīng)常會碰到多用戶問題,例如:你在公司里有一個gi...
    SnailTyan閱讀 6,033評論 0 9