同一台電腦同時使用gitHub和gitLab


工作中我們有時可能會在同一台電腦上使用多個git賬號,例如:公司的gitLab賬號,個人的gitHub賬號。怎樣才能在使用gitlab與github時,切換成對應的賬號,並且免密?這時我們需要使用ssh(git可以選擇使用https方式、ssh方式兩種方式通信,但使用https方式時,每次fetch和push代碼都需要輸入賬號和密碼),以windows為例,進行如下操作。

一,生成ssh密鑰並配置

分別對gitlab和github生成對應的密鑰(默認情況下本地生成的秘鑰位於C:/Users/用戶名/.ssh/)

1,生成gitlab密鑰並配置

  • 電腦開始菜單中找到已安裝的gitbash並打開,輸入命令:

    ssh-keygen -t rsa -C "公司郵箱地址"

    按回車,再按3次enter鍵,生成對應的gitlab密鑰:id_rsa和id_rsa.pub

  • 將gitlab公鑰即id_rsa.pub(Windows下路徑為C:/Users/用戶名/.ssh/)中的內容配置到公司的gitlab上。

    操作步驟如下圖。用記事本打開id_rsa.pub,復制有所內容,粘貼到4里;5中標題可任意輸入。

2,生成gitlab密鑰並配置

  • 在gitbash中輸入命令:

    ssh-keygen -t rsa -C "github郵箱地址" -f ~/.ssh/github_rsa

  • 生成對應的github密鑰:github_rsa和github_rsa.pub

  • 將github公鑰即github_rsa.pub中的內容配置到自己的github上。操作步驟如下:

  • 打開github_rsa.pub,復制有所內容,填入后點擊“Add SSH key”按鈕。接着可能會跳轉頁面需要輸入你的GitHub密碼,輸入確定即可。

3,配置git,訪問不同host時訪問不同的密鑰

  • 進入密鑰生成的位置(C:/Users/用戶名/.ssh/),手動創建一個config文件(注意這個config文件要無后綴)。

  • 在新建的config文件里面配置如下內容:

    # 自己的github賬號配置
    Host github.com
    	  port 22
        User git
        HostName github.com
        PreferredAuthentications publickey
        IdentityFile C:\Users\xiaoqq\.ssh\github_rsa
    
    # 公司的gitlab賬號配置(HostName為公司的gitlab地址)
    Host gitlab.com
        port 22
        User git
        HostName gitlab.xxx.com
        User git
        PreferredAuthentications publickey
        IdentityFile C:\Users\xiaoqq\.ssh\id_rsa
    

    字段配置簡單說明:

    Host
        Host可以看作是一個你要識別的模式,對識別的模式,配置對應的主機名和ssh文件
    Port
        自定義的端口。默認為22,可不配置
    User
        自定義的用戶名,默認為git,可不配置
    HostName
        真正連接的服務器地址
    PreferredAuthentications
        指定優先使用哪種方式驗證,支持密碼和秘鑰驗證方式
    IdentityFile
        指定本次連接使用的密鑰文件
    

設置HostName時需要注意,復制公司gitlab或者自己的github地址時,需要把"https://"去掉,只保留github.com部分。

二,驗證是否設置成功

在C:/Users/用戶名/.ssh中,右鍵打開Git Bash Here,分別輸入命令:

# 測試github
ssh -T git@github.com

# 測試gitlab(@符后面的為公司gitlab地址)
ssh -T git@gitlab.xxx.com

如下圖所示則說明配置成功

三,git倉庫配置

1,簡介

在git中,我們使用git config 命令用來配置git的配置文件,git配置級別主要有以下3類:
倉庫級別 local 【優先級最高】
用戶級別 global【優先級次之】
系統級別 system【優先級最低】

  • git 倉庫級別對應的配置文件是當前倉庫下的.git/config 【在當前目錄下.git目錄默認是隱藏的,所以在文件管理器中我們要打開顯示以藏文件】

  • git 用戶級別對應的配置文件是用戶宿主目錄下的~/.gitconfig 【宿主目錄:C:\Users\xiaoqq】

  • git系統級別對應的配置文件是git安裝目錄下的 /etc/gitconfig

    簡單了解后我們就可以進行配置了

2,配置

  • 用戶級別配置

    用戶級別是配置公司gitlba賬號還是自己github賬號,可以自由選擇。因為平常使用公司的代碼頻率較高,所以我選擇將gitlab賬號配置成用戶級別。gitBath下執行如下命令:

    git config --global user.name 'lfr' #公司賬號名稱
    git config --global user.email 'lfr@company.com' #公司賬號郵箱

  • 倉庫級別配置

    local(倉庫級別)配置成github的賬號。選擇一個文件夾作為github的本地倉庫,在該文件夾里鼠標右鍵打開Git Bash Here,執行命令:git init

    再執行命令:

    git config --local user.name 'username' #github賬號名稱
    git config --local user.email 'username@gmail.com' #github賬號郵箱

    之后自己的github的代碼都應該在這個倉庫下進行pull、push操作。

3,克隆項目代碼

克隆自己github的項目代碼至本地倉庫。在2.2中的本地倉庫打開gitBash,輸入命令:

git clone git@github.com:CarlLfr/pythonScript.git # github項目地址(clone with ssh)

這樣就可以對克隆的項目進行git其他的操作了。

至此,我們就可以在這台電腦上同時使用github與gitlab進行代碼的設置就完成了。

參考:

https://www.jianshu.com/p/a34e90b5ce2a
https://blog.csdn.net/weixin_43161811/article/details/88804030


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM