安裝
- 安裝 Git
官網下載一個Windows版本的Git。 - 然后一直下一步即可,如下圖
- 環境變量自動配好的,可以去檢查一下環境變量中PATH中有沒有Git的環境變量
- 然后在桌面右擊鼠標,選擇Git bash here,然后輸入下面代碼:
git --version #驗證git是否安裝成功,輸出版本號就代表安裝成功
配置全局用戶名和郵箱
安裝完成有配置一下全局的用戶名和郵箱,輸入如下命令:
git config --global user.name "自定義用戶名"
git config --global user.email "郵箱"
使用如下命令可以取消全局設置:
git config --global --unset user.name
git config --global --unset user.email
可以使用如下命令查看當前的全局變量:
git config --global --list
生成SSH Key
管理多個SSH Key
問題說明
當有多個git賬號的時候,比如一個github,用於自己進行一些開發活動,再來一個gitlab,一般是公司內部的git。這兩者你的郵箱如果不同的話,就會涉及到一個問題,生成第二個git的key的時候會覆蓋第一個的key,導致必然有一個用不了。
解決方法
我們可以在【~/.ssh】目錄下新建一個config文件配置一下,就可以解決問題
具體步驟:
1. 生成
- 生成第一個ssh key(這里我用的是公司的郵箱)
進入【C:\Users\用戶名.ssh】,點擊鼠標右鍵-選擇Git bash here,這一步很重要,不然在下面輸入密鑰名稱的時候,會將密鑰生成在當前打開git bash的路徑下,比如我在桌面打開的git bash,就會生成在桌面上,當然也可以在輸入名稱前將路徑補全。如下圖:
ssh-keygen -t rsa -C "yourmail@glanway.com"
在輸入文件名及路徑的時候,生成的密鑰命名為【id_rsa_gitlab】,下面連續回車,沒有給密鑰設置密碼(看個人需求)
- 生成第二個ssh key(這里用的我的GitHub郵箱)
ssh-keygen -t rsa -C "yourmail@qq.com"
生成后的文件如下圖:
2. 執行ssh-agent命令
ssh-agent就是一個密鑰管理器,運行ssh-agent以后,使用ssh-add將私鑰交給ssh-agent保管,其他程序需要身份驗證的時候可以將驗證申請交給ssh-agent來完成整個認證過程
3. 添加私鑰,執行下面命令
ssh-add ~/.ssh/id_rsa_github
ssh-add ~/.ssh/id_rsa_gitlab
在執行上面的添加私鑰命令時,如果出現如下錯誤:
解決方法如下:
- 輸入如下命令查看已開啟的ssh-agent線程
ps aux | grep ssh
- 執行如下命令殺死線程:
kill -9 線程號
- 進入用戶名目錄下的.ssh目錄,打開git bash,執行如下命令
exec ssh-agent bash
eval ssh-agent -s
- 再執行如下命令,將私鑰放進去
ssh-add ./id_rsa_github
ssh-add ./id_rsa_gitlab
4. 創建並修改config文件
-
創建config文件,將文件創建在【.ssh】目錄下
①在windows下新建一個txt文本,然后將名字改成config(包括.txt后綴) ②在git bash下,直接touch config即可創建一個config文件
-
編輯config文件,修改如下內容:
# gitlab
Host gitool.glanway.com
HostName gitool.glanway.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitlab
User mingyue
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
User mingyue
配置文件說明:
每個賬號單獨配置一個Host
,每個Host
要取一個別名,每個Host
主要配置HostName
和IdentityFile
兩個屬性即可
Host
的名字可以取為自己喜歡的名字,不過這個會影響git相關命令
例如:
Host mygithub
這樣定義的話,命令如下,即git@
后面緊跟的名字改為mygithub
git clone git@mygithub:PopFisher/AndroidRotateAnim.git
就相當於你配置的HostName
真正的域名,映射成了Host
后面的配置的名字
HostName #這個是真實的域名地址
IdentityFile #這里是id_rsa的地址
PreferredAuthentications #配置登錄時用什么權限認證--可設置publickey,password publickey,keyboard-interactive等
User #配置使用用戶名
【注意】不要在配置文件中添加下面這樣的注釋
這種注釋在讀取該配置文件時會導致報錯,不被識別
HostName git.glanway.com //這里填你們公司的git網址即可
生成單個ssh key
輸入如下命令,
ssh-keygen -t rsa -C "yourmail@xxxl.com"
生成單個SSH Key時可以連續回車,不輸入密鑰文件名字和密碼:
生成后會在【C:\Users\用戶名.ssh】下產生兩個文件,如圖:
將公鑰添加到gitlab或者GitHub上
測試
輸入如下代碼,見到下圖即配置成功
ssh -T git@github.com
ssh -T git@gitool.glanway.com