在同一台機器上配置多個Git帳號
By:授客 QQ:1033553122
實踐環境
win10
Git-2.21.0-64-bit.exe
TortoiseGit-2.8.0.0-64bit.msi
代碼托管 Gitee.com
1. 打開Git Bash
進入到Git repository所在目錄,右鍵->Git Bash Here
2. 查看配置[可選]
git config --list
3. 移除全局配置
# 移除全局配置賬戶
git config --global --unset user.name
#查看全局用戶名
git config --global user.name
# 移除全局配置郵箱
git config --global --unset user.email
# 查看全局郵箱
git config --global user.email
# 移除全局密碼
git config --global --unset user.password
# 查看全局密碼
git config --global user.password
備注:如下,筆者實踐中,沒有設置全局密碼,所以只進行以下操作。
4. 生成公私鑰文件
執行以下命令
$ ssh-keygen -t rsa -C user_name1@163.com
說明:如下,執行命令后,會提示輸入要保存key的文件路徑,密碼(Enter passphrase。。。,都可以直接回車,不輸入)
參數說明:
-t要生成的秘鑰的類型
-c 用於識別這個秘鑰的注釋
如上圖,在指定目錄下(例中為C:\Users\cassmall\.ssh)生成公私鑰文件
5. 在Gitee網站上添加公鑰
用戶1身份登錄Gitee網站,打開id_rsa.pub公鑰文件,復制內容到 Gitee.com –>設置 ->安全設置-SSH公鑰,如下操作
提交,按提示輸入登錄密碼,提交,進行權限驗證,成功配置后如下
注意:如果企業倉庫,對個人倉庫進行操作(比如fork的私有倉庫),則要選擇 添加個人公鑰
否則,會提示類似如下錯誤:
git.exe push --progress "origin" V2.0:V2.0
Access denied: DeployKey does not support push code
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
6. 重復步驟4-5,為第其它Git用戶進行公鑰配置
注意:為第二個用戶生成公私鑰時,得顯示指定私鑰的文件路徑(例中為/c/Users/cassmall/.ssh/id_rsa2),直接回車默認會覆蓋第一個用戶的文件
最后生成的文件如下
7. 添加config文件
在上述.ssh目錄下,手動新增一個config 文本文件,為每個賬號配置一個Host節點。主要配置項說明:
配置文件內容:
# user1配置
Host gitee.com
HostName gitee.com
IdentityFile C:\Users\cassmall\.ssh\id_rsa
PreferredAuthentications publickey
User xxxxx@163.com
# user2配置
Host gitee.com2
HostName gitee.com
IdentityFile C:\Users\cassmall\.ssh\id_rsa2
PreferredAuthentications publickey
User xxx@cxxstime.com
填寫說明:
Host 主機別名
HostName 服務器真實地址
IdentityFile 私鑰文件路徑
PreferredAuthentications 認證方式
User 用戶名(例中為Gitee帳號)
8. 修改局部Remote origin
為每給repository設置remote origin
$ git remote rm origin
$ git remote add origin git@gitee.com2:xxxx.git
注意:
1、git remote add origin git@<填寫config中對應用的Host主機別名>:xxxx.git
2、如果不知道xxxx.git 地址,可以上Gitee網站復制,如下,紅色選框框選部分
3、每個用戶涉及都repository都要進行設置
9. 配置局部用戶名和郵件
為每個repository設置局部用戶名和郵件(注意:每個用戶涉及都倉庫都要設置
# 配置局部用戶名
git config user.name "user1_name"
說明:user1_name可以隨意
# 配置局部郵件
git config user.email "user1_email"
10. 終端測試SSH Key是否生效
執行以下命令ssh -vT git@<config中配置都主機別名>
$ ssh -vT git@gitee.com
如圖,成功了
11. 修改TortoiseGit Network
如下,進入repository目錄,右鍵選擇Settings
找到 Network,修改
為
注意:
1、如果不修改,會出現Git bash命令行執行相關操作,比如 git pull成功,但是TortoiseGit UI客戶端操作失敗的情況。
2、這里TortoiseGitPlink,ssh.exe路徑分別隨TortoiseGit,Git都安裝而異
12. 驗證TortoiseGit是否可用