奇葩的雙git配置

小肥羊發表於2018-01-29

因為實際開發需要,公司使用的是Gitlab,我自己私下用的是Github,我想在公司電腦上同時配置上這兩個。
網上有諸多教程針對這個配置,我開始也是照此教程進行操作,但是都失敗了。最終自己根據自己操作居然成功了。實現了Github和Gitlab的共存。

1、配置好自己的Github

  • 1.1、在自己C:Userswilliam資料夾下,通過命令列工具mkdir .ssh,新建了一個.ssh的資料夾;
  • 1.2、cd .ssh,通過ssh-keygen -t rsa -C "我的郵箱地址"生成自己的github的一對RSA金鑰,一路enter,直到最後successful為止
  • 1.3、然後將.ssh資料夾下的id_rsa.pub檔案開啟,複製其中的內容新增到github網頁版的ssh中即可
  • 1.4、通過ssh -t git@github.com測試連通與否,其中Are you sure you want to continue connecting (yes/no)?的輸入yes就可以

2、配置好自己的Gitlab

  • 2.1、基本上是根據公司的配置文件來,基本操作和上面一樣

3、總結與思考

3.1 總結

  • 3.1.1、最終我的.ssh資料夾裡只有configid_rsaid_rsa.pubknown_hosts檔案,其中我在config檔案裡新增了Github的域名指向,不然ssh -t git@github.com提示失敗。
  • 3.1.2、根據網上的教程不一定適合自己公司的情況,主要變數在於每個公司的Gitlab配置時候可能有某些環境變數不同,體現在最終.ssh資料夾裡的config檔案和known_hosts檔案裡內容不同,主要還是config檔案。所以一定要根據自己公司情況摸索,走出一條適合自己情況的配置之路。我在花了大半天時間看了好幾個網上的教程都宣告失敗。
  • 3.1.3、github通過ssh-keygen -t rsa -C "我的郵箱地址"生成自己的github的一對RSA金鑰後,會讓你選擇可以自定義儲存金鑰的檔名Enter file in which to save the key(C:Userswilliam/.ssh/id_rsa):,我如果不Enter,設定自己自定義檔名,即使把生成的公鑰新增到網頁的SSH中,最後連通測試都是失敗,當然更不能clone了,感覺很奇葩。

3.2 思考

  • 3.2.1、為啥自己自定義的Github的金鑰檔名最後連通測試就失敗?
  • 3.2.2、為啥Gitlab自己自定義檔名後最終檔名還是預設的id_rsa,奇怪!!!
  • 3.2.3、 .ssh資料夾裡只有configid_rsaid_rsa.pubknown_hosts檔案,卻可以承擔了分別連線Github和Gitlab,確實很奇葩。你沒看錯,id_rsaid_rsa.pub里居然僅僅都是Gitlab的金鑰,Github的沒了。 奇葩!!!!