日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

clone远程代码 在不同电脑上git_Git 同一电脑配置多个远程仓库

發(fā)布時(shí)間:2023/12/18 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 clone远程代码 在不同电脑上git_Git 同一电脑配置多个远程仓库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

當(dāng)一臺電腦需要連接多個遠(yuǎn)程倉庫的時(shí)候如何配置。如一個倉庫需要連接github、另一個倉庫需要諒解gitlab、還有一個倉庫需要連接gitee等。

同一電腦配置多個倉庫,如果倉庫不為同一網(wǎng)站則使用同一個公鑰即可。本文講的是分開配置的方法

1.配置一個遠(yuǎn)程倉庫

(1)生成ssh-key

輸入如下代碼生成一個ssh-key

ssh-keygen -t rsa -C "yourmail@gmail.com"

一般情況下連續(xù)三個回車直接生成ssh-key出現(xiàn)如下方代碼

Generating public/private ecdsa key pair.

Enter file in which to save the key (/home/username/.ssh/id_ecdsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/username/.ssh/id_ecdsa.

Your public key has been saved in /home/username/.ssh/id_ecdsa.pub.

The key fingerprint is:

dd:15:ee:24:20:14:11:01:b8:72:a2:0f:99:4c:79:7f username@localhost-2011-12-22

The key's randomart image is:

+--[ECDSA 521]---+

| ..oB=. . |

| . . . . . |

| . . . + |

| oo.o . . = |

|o+.+. S . . . |

|=. . E |

| o . |

| . |

| |

+-----------------+

第一個回車后會出現(xiàn)

Generating public/private rsa key pair.Enter file in which to save the key (/c/Users/Administrator.2017.V.2.12-318/.ssh/id_rsa):

要求輸入想要存儲的文件名的位置和名稱 ( 如果不輸入則名稱默認(rèn)為~/.ssh/id_rsa、如果你僅僅要配置一個帳號,那么我們使用默認(rèn)名稱即可)

第二個回車后出現(xiàn):輸入私鑰的密碼

Enter passphrase (empty for no passphrase):

第三個回車后:為確認(rèn)輸入私鑰的密碼

Enter same passphrase again:

這里直接回車默認(rèn)設(shè)置為無密碼,使用默認(rèn)即可

到這里生成SSH-KEY的事就完成了,你在當(dāng)前文件夾會看到兩個文件:

id_rsa你的私鑰); id_rsa.pub(你的公鑰)

(2) 查看的公鑰文件的實(shí)際內(nèi)容,添加到對應(yīng)的 遠(yuǎn)程倉庫賬戶中

cat ~/.ssh/id_rsa.pub

參數(shù)解釋

也可以通過如下代碼來生成ssh-key

ssh-keygen -t rsa -f ~/.ssh/id_rsa_x -C "yourmail@xxx.com"

-f 后面內(nèi)容為指定的ssh-key生成的位置和名稱

-t 參數(shù)之后,我們請求建立一個 “RSA” 類型的密鑰。RSA 是當(dāng)前最新并且最安全的一種形式。

-C 參數(shù)之后,我們提供了一個注釋,你可以把它想象為對這個密鑰的一種描述或標(biāo)簽。例如使用你的 email 地址。總之,一個能讓你之后更容易識別的注釋。

2. 配置多個遠(yuǎn)程倉庫

生成三個ssh-key

生成三個名稱不同ssh-key

分別命名為id_rsa_github;id_rsa_github2;id_rsa_github;id_rsa_gitee

# 可以采用如下方式 在第一個回車后輸入名稱

ssh-keygen -t rsa -C "yourmail@gmail.com

Generating public/private rsa key pair.

Enter file in which to save the key (/Users/QuQu/.ssh/id_rsa): id_rsa_gitlab

編輯config文件,配置不同的倉庫指向不同的密鑰文件

如果沒有則在~/.ssh文件夾下新建 config文件

windows 在Window進(jìn)入C:/Users/你的用戶名/.ssh文件夾,右鍵新建一個文本文件,改名為config即可。這里要注意,沒有.ssh文件夾的要新建一個.ssh名的文件夾。

Linux進(jìn)入.ssh文件夾:cd ~/.ssh,新建config文件:touch config;或者:touch ~/.ssh/config。這里要注意,沒有.ssh文件夾的要新建一個.ssh名的文件夾。

添加如下內(nèi)容

# github配置

Host github.com(可更改)// 主機(jī)名字,不能重名

HostName github.com// 主機(jī)所在域名或IP

User git// 用戶名稱

PreferredAuthentications publickey

IdentityFile ~/.ssh/id_rsa_github// 私鑰路徑

# github配置(第二個與第一個不是一個倉庫但是同為github)

Host github2.com(可更改)// 主機(jī)名字,不能重名

HostName github.com// 主機(jī)所在域名或IP

User git// 用戶名稱

PreferredAuthentications publickey

IdentityFile ~/.ssh/id_rsa_github2// 私鑰路徑

# gitlab配置

Host gitlib.com(可更改)

HostName gitlab.xxx.com(gitlab倉庫域名)

User git

PreferredAuthentications publickey

IdentityFile ~/.ssh/id_rsa_github

# gitee配置

Host gitee.com(可更改)

HostName gitee.com

User git

PreferredAuthentications publickey

IdentityFile ~/.ssh/id_rsa_github

清空本地的 SSH 緩存,添加新的 SSH 密鑰 到 SSH agent中

這里如果你用的github官方的bash,ssh-agent -s,如果是其他的,比如msysgit,eval $(ssh-agent -s)

# 如果在.ssh目錄下可省略文件路徑 :ssh-add id_rsa_github

ssh-add -D

ssh-add ~/.ssh/id_rsa_github

ssh-add ~/.ssh/id_rsa_gitlab

測試 ssh 鏈接

ssh -T git@github.com

ssh -T git@github2.com

ssh -T git@gitee.com

ssh -T git@gitlab.com

# xxx! You’ve successfully authenticated, but GitHub does not provide bash access.

# 出現(xiàn)上述提示,連接成功

取消 git 全局用戶名/郵箱的設(shè)置,設(shè)置獨(dú)立的 用戶名/郵箱

# 取消全局 用戶名/郵箱 配置

$ git config --global --unset user.name

$ git config --global --unset user.email

# 進(jìn)入項(xiàng)目文件夾,單獨(dú)設(shè)置每個repo 用戶名/郵箱

$ git config user.email "xxxx@xx.com"

$ git config user.name "xxxx"

命令行進(jìn)入項(xiàng)目目錄,重建 origin (whatever 為相應(yīng)項(xiàng)目地址)

$ git remote rm origin

# 遠(yuǎn)程倉庫地址,注意Host名稱

$ git remote add origin git@second.github.com:githubUserName/repName.git

$ git remote -v # 查看遠(yuǎn)程

# ssh -vT git@github.com可以打印log 通過此方法可以debug如果連接不成功

原理分析

ssh 客戶端是通過類似 git@github.com:githubUserName/repName.git 的地址來識別使用本地的哪個私鑰的,地址中的 User 是@前面的git, Host 是@后面的github.com。

如果所有賬號的 User 和 Host 都為 git 和 github.com,那么就只能使用一個私鑰。所以要對User 和 Host 進(jìn)行配置,讓每個賬號使用自己的 Host,每個 Host 的域名解析到 github.com,如上面配置中的Host gitlab.com。

配置了別名之后,新的地址就是user@host:repName/repName.git(在添加遠(yuǎn)程倉庫時(shí)使用)。

這樣 ssh 在連接時(shí)就可以區(qū)別不同的賬號了。

使用新的公私鑰

情景1:使用新的公私鑰進(jìn)行克隆操作

git clone git@gitlab.com:username/repo.git

注意此時(shí)要把原來的github.com配置成你定義的github

情景2:已經(jīng)克隆,之后才添加新的公私鑰,我要為倉庫設(shè)置使用新的公私鑰進(jìn)行push操作

修改倉庫的配置文件:.git/config 為

[remote "origin"]

url = git@gitlab.com:gitlabUserName/repName.git

總結(jié)

以上是生活随笔為你收集整理的clone远程代码 在不同电脑上git_Git 同一电脑配置多个远程仓库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。