一個(gè)客戶(hù)端設(shè)置多個(gè)GitHub賬號(hào)

最近想要使用自己的GitHub搭建Hexo博客喇澡,同時(shí)還要使用工作的GitHub開(kāi)發(fā)項(xiàng)目,所以在網(wǎng)上找尋了一些文章,在此將自己的搭建過(guò)程記錄一下脖捻。

前期工作

兩個(gè)GitHub賬號(hào)(假設(shè)兩個(gè)賬號(hào)為one,two)
取消Git全局設(shè)置

$git config --global --unset user.name
$git config --global --unset user.email

SSH配置

生成id_rsa私鑰夺溢,id_rsa.pub公鑰论巍。one可以直接回車(chē),默認(rèn)生成 id_rsa 和 id_rsa.pub 风响。

$ssh-keygen -t rsa -C "one@xx.com"

添加two會(huì)出現(xiàn)提示輸入文件名嘉汰,輸入與默認(rèn)配置不一樣的文件名,如:id_rsa_two状勤。

$cd ~/.ssh
$ssh-keygen -t rsa -C "two@126.com"  #  之后會(huì)提示輸入文件名

GitHub添加公鑰 id_rsa.pub 鞋怀、 id_rsa_two.pub,分別登陸one,two的賬號(hào)持搜,在 Account Settings 的 SSH Keys 里密似,點(diǎn) Add SSH Keys ,將公鑰(.pub文件)中的內(nèi)容粘貼到 Key 中葫盼,并輸入 Title辛友。
添加 ssh Key

$ssh-add ~/.ssh/id_rsa
$ssh-add ~/.ssh/id_rsa_two

可以在添加前使用下面命令刪除所有的 key

$ssh-add -D

最后可以通過(guò)下面命令,查看 key 的設(shè)置

$ssh-add -l

修改ssh config文件

$cd ~/.ssh/
$touch config

打開(kāi) .ssh 文件夾下的 config 文件剪返,進(jìn)行配置

#  default
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa

#  two
Host two.github.com  #  前綴名可以任意設(shè)置
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_two
  • 這里必須采用這樣的方式設(shè)置废累,否則 push 時(shí)會(huì)出現(xiàn)以下錯(cuò)誤:

ERROR: Permission to two/two.github.com.git denied to one.

簡(jiǎn)單分析下原因,我們可以發(fā)現(xiàn) ssh 客戶(hù)端是通過(guò)類(lèi)似:

git@github.com:one/one.github.com.git

這樣的 Git 地址中的 User 和 Host 來(lái)識(shí)別使用哪個(gè)本地私鑰的脱盲。
很明顯邑滨,如果 User 和 Host 始終為 git 和 github.com,那么就只能使用一個(gè)私鑰钱反。
所以需要上面的方式配置掖看,每個(gè)賬號(hào)使用了自己的 Host匣距,每個(gè) Host 的域名做 CNAME 解析到 github.com,這樣 ssh 在連接時(shí)就可以區(qū)別不同的賬號(hào)了哎壳。

$ssh -T git@github.com        #  測(cè)試one ssh連接
# Hi ***! You've successfully authenticated, but GitHub does not provide shell access.
$ssh -T git@two.github.com    #  測(cè)試two ssh連接
# Hi ***! You've successfully authenticated, but GitHub does not provide shell access.

但是這樣還沒(méi)有完毅待,下面還有關(guān)聯(lián)的設(shè)置。

在Git項(xiàng)目中配置賬號(hào)關(guān)聯(lián)

可以用 git init 或者 git clone 創(chuàng)建本地項(xiàng)目
分別在one和two的git項(xiàng)目目錄下归榕,使用下面的命令設(shè)置名字和郵箱

$git config user.name "__name__"            #  __name__ 例如 one
$git config user.email "__email__"          #  __email__ 例如 one@126.com

注意:由于我不知道Hexo怎樣配置 局部的config尸红,所以,我將two的config使用全局刹泄,而工作目錄配置局部外里。

$git config --global user.name "__name__"            #  __name__ 例如 two
$git config --global user.email "__email__"          #  __email__ 例如 two@126.com

查看git項(xiàng)目的配置

$git config --list

查看 one 的 remote.origin.url=git@github.com:one/one.github.com.git
查看 two 的 remote.origin.url=git@github.com:two/two.github.com.git
由于 one 使用的是默認(rèn)的 Host ,所以不需要修改特石,但是 two 使用的是 two.github.com 盅蝗,則需要進(jìn)行修改

$git remote rm origin
$git remote add origin git@two.github.com:two/two.github.com.git

我在Hexo中的配置(使用two賬號(hào))

deploy:
    type: git
    repo: git@two.github.com:two/two.github.io.git
    branch: master

上傳更改

上面所有的設(shè)置無(wú)誤后,可以修改代碼姆蘸,然后上傳了墩莫。

$git add -A
$git commit -m "your comments"
$git push

如果遇到warning

warning: push.default is unset; its implicit value is changing in Git 2.0 from ‘matching’ to ‘simple’. To squelch this messageand maintain the current behavior after the default changes, use…

推薦使用

git config --global push.default simple

好了,這就是今天的分享逞敷,最近也會(huì)持續(xù)更新git相關(guān)系列贼穆,謝謝大家的支持

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市兰粉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌顶瞳,老刑警劉巖玖姑,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異慨菱,居然都是意外死亡焰络,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)符喝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)闪彼,“玉大人,你說(shuō)我怎么就攤上這事协饲∥吠螅” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵茉稠,是天一觀的道長(zhǎng)描馅。 經(jīng)常有香客問(wèn)我,道長(zhǎng)而线,這世上最難降的妖魔是什么铭污? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任恋日,我火速辦了婚禮,結(jié)果婚禮上嘹狞,老公的妹妹穿的比我還像新娘岂膳。我一直安慰自己,他們只是感情好磅网,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布谈截。 她就那樣靜靜地躺著,像睡著了一般知市。 火紅的嫁衣襯著肌膚如雪傻盟。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,829評(píng)論 1 290
  • 那天嫂丙,我揣著相機(jī)與錄音娘赴,去河邊找鬼。 笑死跟啤,一個(gè)胖子當(dāng)著我的面吹牛诽表,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播隅肥,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼竿奏,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了腥放?” 一聲冷哼從身側(cè)響起泛啸,我...
    開(kāi)封第一講書(shū)人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎秃症,沒(méi)想到半個(gè)月后候址,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡种柑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年岗仑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片聚请。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡荠雕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出驶赏,到底是詐尸還是另有隱情炸卑,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布煤傍,位于F島的核電站矾兜,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏患久。R本人自食惡果不足惜椅寺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一浑槽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧返帕,春花似錦桐玻、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至链韭,卻和暖如春偏竟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背敞峭。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工踊谋, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人旋讹。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓殖蚕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親沉迹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子睦疫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

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