天天看點

git的一些相關知識

目前的git倉庫如github都是通過使用SSH與用戶端連接配接,如果隻是固定使用單個git倉庫的單個使用者

(first),生成生成密鑰對後,将公鑰儲存至github,每次連接配接時SSH用戶端發送本地私鑰(預設~/.ssh/id_rsa)到服務端驗證。單使用者情況下,連接配接的伺服器上儲存的公鑰和發送的私鑰自然是配對的。

但是在實際工作中,一般公司内部都有自己的獨立的git倉庫(gitlab.xxx.com),于是就會存在這樣的情

況,在github有私人的賬号first,公司的gitlab中的工作賬号sencord,first和second因為環境不同,必須配置不同的username和email。是以必須對每個賬号分别生成獨立的公鑰密鑰對。在連結到github時,使用first的公鑰密鑰對,連結到公司内的gitlab時,使用second的公鑰密鑰對。假設first的密鑰檔案為id_rsa,second的密鑰檔案為id_rsa_second.

在預設情況下,ssh總是使用id_rsa密鑰檔案進行連結,這樣對于second賬号的認證自然是不通過的,

不過,要實作多帳号下的SSH key切換在用戶端做一些配置即可。

首先cd到~/.ssh 使用 ssh-keygen -t -rsa -C ‘[email protected]’(為你工作賬号的郵箱位址) 生成新的

SSH key:id_rsa_second

生成後将新的ssh public key添加到内部的gitlab倉庫中, 然後在~/.ssh 目錄下建立config檔案,該檔案用于配置私鑰對應的伺服器。内容如下:

 時會使用second的id_rsa_second與伺服器進行連接配接.而連結非gitlab.xxx.com伺服器時則會使用first的密鑰進行連結。至此,大功告成!

注意:git根據配置檔案的user.email來擷取git帳号顯示author資訊,是以對于多帳号使用者一定要

記得将user.email改為相應的email([email protected])。

2、配置送出的使用者名和不同伺服器的不同使用者名和郵箱。

全局配置:

git config --global user.name "username"

git config --global user.email "email"

該配置在 使用者根目錄下 ~/.gitconfig檔案中配置。

如果針對具體的git工程配置單獨的賬号送出資訊,可以再.git/config中添加如下配置

就可以更改送出名稱了

3、Intellij idea中報錯:Push failed: Failed with error: fatal: Could not read from remote repository.

git的一些相關知識

修改git配置如圖

git的一些相關知識

選擇native,原因提示寫的很明顯,native模式ssh送出可以使用,也就是我們配置的公鑰、私鑰等都可以使用,而直接built-in不是使用ssh形式連接配接,是以不能送出成功。

本文轉自NewPanderKing51CTO部落格,原文連結: http://www.cnblogs.com/newpanderking/p/4889292.html,如需轉載請自行聯系原作者