[Git]关联远程库的两种方法及配置

这篇具有很好参考价值的文章主要介绍了[Git]关联远程库的两种方法及配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/129986105
出自【进步*于辰的博客】

参考笔记三,P16。

1、连接方式

git 的连接方式分为四种:ssh 连接、HTTPS 连接、SVN 连接和SVN + ssh 连接。

1.1 HTTPS

git 配置远程仓库账号和密码,版本控制,git关联

1.1.1 身份验证

在首次连接gitee仓库时,会弹出如下窗口:
git 配置远程仓库账号和密码,版本控制,git关联
用户名、密码就是gitee账号的用户名、密码,正确即可连接成功。前提是,此gitee账号必须是相应仓库的仓库成员。并且,若后续需要进行提交等操作,要求成员权限在开发者及以上。(关于gitee的使用,大家可自行去网站学习 → gitee官网)
git 配置远程仓库账号和密码,版本控制,git关联

1.1.2 两个问题

  1. 首次连接gitee时,需要输入gitee账号用户名和密码,若重新创建一个本地库,是不是还要连接一次?
  2. 假设我有两个gitee账号A、B,已连接成功A,现在我要拉取B中的一个项目,以HTTPS的方式连接B,步骤是不是跟上述相同?

在连接成功后,电脑会将gitee账号保存到凭据管理器,当下次git操作时用作身份验证。

只要下次git操作是通过HTTPS方式连接gitee,就会使用此账号进行身份验证。而电脑将gitee账号保存到凭据管理器时的标识是gitee官网的网址,是不区分个人账号的。

因此,连接 B 时进行身份验证使用的还是之前连接 A 时保存的gitee账号,这样必然验证失败。故需要先将凭据管理器中保存的gitee账号删除:
git 配置远程仓库账号和密码,版本控制,git关联

1.1.3 不足之处

  1. 需要gitee账号的用户名和密码进行身份验证,那如果忘记账号怎么办?
  2. 需要去凭据管理器删除gitee账号,好麻烦。而且,若是凭据管理器中的gitee账号被恶意查看怎么办?
  3. 若项目组新进一个成员,就需要将此成员的gitee账号添加进仓库成员中,是不是每个仓库都要添加一次?

第1个不足容易解决,找回密码就行了。

第2个不足,凭据管理器中的gitee账号密码是隐藏的。若是普通操作,管理员都无法查看,但的确有一些工具可以进行查看,比如:SvnPwd。

第3个不足,的确,若是想要新成员能操作另一个项目,则同样要把其gitee账号添加进仓库成员,而且是每个仓库都要添加一次。
git 配置远程仓库账号和密码,版本控制,git关联
仓库邀请新成员时可从其他仓库选择添加。不用再输入一遍新gitee账号,这也是一个便利吧。

1.2 ssh

git 配置远程仓库账号和密码,版本控制,git关联

1.2.1 概述

ssh连接方式很好地解决了HTTPS连接方式存在的问题,其实现思路也很简单:

使用某种加密算法将某个标识和计算机Mac地址等信息进行加密,得到两条一长串字符。由于这两条字符串是由计算机Mac地址等信息加密而成,而计算机Mac地址唯一,故这两条字符串唯一,并且相互对应,这就是公钥私钥

从上述阐述中,大家可以知道。ssh连接方式不需要gitee账号进行身份验证。因为,公钥和私钥都唯一、且具有相互对应的特性,这就是最好的身份验证方法。

因此,将公钥添加进仓库的公钥管理中,连接gitee时,电脑会自行查找某个位置的私钥。如果仓库某个公钥能与此电脑上某个私钥对应上,说明这个公钥是由此电脑创建的(当然也可以说这个公钥是由其他电脑创建、然后发送到此电脑上的。这种情况我未尝试过,不过我觉得应该不可行,毕竟加密所用的mac地址不相符,而且似乎无意义,故不探讨),自然通过了身份验证,gitee连接成功。

下面我介绍一下ssh连接方式如何配置(配置所用公钥是现成的,关于创建公钥和私钥的详述后续说明):

1.2.2 公钥配置

配置方式一: \color{green}{配置方式一:} 配置方式一:
git 配置远程仓库账号和密码,版本控制,git关联
git 配置远程仓库账号和密码,版本控制,git关联
将创建的公钥添加进仓库公钥管理中,只要满足以下两个条件,即可通过身份验证。

1、公钥和私钥文件必须在下图文件目录中。
git 配置远程仓库账号和密码,版本控制,git关联
2、公钥和私钥文件名必须以“id_”作为前缀,如:id_rsa.pub
git 配置远程仓库账号和密码,版本控制,git关联
图中红框内,后缀是.pub的文件是公钥文件,无后缀的是私钥文件。为什么我的公钥文件不是以id_作为前缀?后续说明。

配置方式二: \color{blue}{配置方式二:} 配置方式二:
git 配置远程仓库账号和密码,版本控制,git关联
在配置方式一,大家肯定看出了一个问题:“公钥是添加在仓库公钥管理内,那多个项目是不是要逐个添加?”

配置方式二可以解决这个问题,称为 “个人公钥” \color{red}{“个人公钥”} 个人公钥。即上图,作用与仓库公钥大同小异,关于个人公钥大家可自行在官网查看。

1.2.3 注意

  1. 两种公钥不相通,且互斥;
  2. 个人公钥管理此gitee账号旗下所有仓库,而仓库公钥仅管理配置此公钥的仓库。

说明一下:

  1. “不相通”指个人公钥与仓库公钥不可相互转换,如要迁移公钥,只能删除后再添加,而“不相通”的原因是两种公钥的权限不同,为了区分。“互斥”指个人公钥与仓库公钥不能相同
  2. “管理旗下所有仓库”指只要将公钥添加进个人公钥,则这个gitee账号内的所有仓库都可操作,即身份验证一并通过;“仅管理配置此公钥的仓库”是因为当将公钥添加进仓库公钥时,其他仓库是可见的,只是状态为未部署。仓库只有成功部署公钥才能通过身份验证。也就是说,添加进仓库公钥的公钥的身份验证作用仅对当前仓库有效

1.3 SVN、SVN + ssh

这两种连接方式非本文重心,故暂不探讨。

2、公钥、私钥

我们见过公钥和私钥最多的地方应该是非对称加密算法吧。在非对称加密算法中,公钥和私钥用于加密和解密的唯一凭据。

在Git中,公钥和私钥则用于ssh连接方式的身份验证。

2.1 创建

创建命令:

ssh-kengen -t rsa -b 1024 -C "<标识>" -f <文件存放位置>

上文说道,公钥和私钥是由某种加密算法将某个标识和计算机Mac地址等信息进行加密生成的。

  1. rsa:rsa 是其中一种加密算法,比较常用的有:rsa、dsa、id25519;
  2. -b后的数字是生成的公钥和私钥的长度,数值任意,但最好是2的指数幂。注意,如果加密算法是dsa,则长度必须是1024,否则无法生成成功;
  3. <标识>是一个字符串,对git操作无作用,仅是一个标识。公钥生成成功后,大家可能会在两个地方看到:(1)、公钥的结尾;(2)、gitee的个人公钥或仓库公钥的名字(当我们添加公钥未指定公钥名称时)。注意:这个标识与公钥并不绑定,故可任意;
  4. -f后是公钥和私钥文件的保存位置,可以是绝对路径,如:C:\Users\于辰\Downloads\新建文件夹\test_xx;也可以是相对路径,如:~/.ssh/test_xx~表示当前电脑账户的目录)。其中,test_xx是公钥和私钥文件名。注意:路径不要加引号。

总结: \color{red}{总结:} 总结:

在一台电脑、使用一种算法、指定一个标识,可创建无数个公钥和私钥。

大家可能觉得这个总结云里雾里,这么举例吧:另选一个长度、保存位置或文件名就可以成功创建一对公钥和私钥。大家尝试一下就知道了。

2.2 示例

1、创建公钥、私钥。
git 配置远程仓库账号和密码,版本控制,git关联
2、公钥、私钥文件。
git 配置远程仓库账号和密码,版本控制,git关联
3、查看公钥、私钥文件。
git 配置远程仓库账号和密码,版本控制,git关联
git 配置远程仓库账号和密码,版本控制,git关联
最后,将公钥复制,按照上述公钥配置方法,将公钥添加进个人公钥或仓库公钥即可,ssh连接方式配置完成。

2.3 关于身份验证时扫描公钥、私钥文件

上述【公钥配置】中提到若要成功配置公钥,需要满足两个条件:

  1. 公钥和私钥文件必须在文件目录C:\Users\于辰\.ssh中;
  2. 公钥和私钥文件名必须以“id_”作为前缀。

为什么需要满足这两个条件? \color{grey}{为什么需要满足这两个条件?} 为什么需要满足这两个条件?
因为当采用ssh连接方式连接gitee时,git默认扫描C:\Users\于辰\.ssh目录下、文件名以“id_”开头的私钥文件,并以其内私钥与gitee个人公钥或仓库公钥进行匹配。若匹配成功,则身份验证通过。

如何自定义扫描目录和文件? \color{grey}{如何自定义扫描目录和文件?} 如何自定义扫描目录和文件?
方式一:命令配置。(仅在当前命令窗口有效)
git 配置远程仓库账号和密码,版本控制,git关联
方式二:TortoiseGit工具配置。(需要另行创建ppk公钥、私钥文件)
git 配置远程仓库账号和密码,版本控制,git关联
.ppk.pub类似,也是一种秘钥文件。因为ssh-keygen命令创建的公钥文件后缀是.pub,而ppk文件的创建是有点麻烦的。

3、关于同电脑连接多gitee账号

3.1 前言

先补充一点:

虽然git会默认识别相应目录下文件名前缀为“id_”的私钥文件,可并不存在遍历机制。就是说,git不会将相应目录下所有文件名前缀为“id_”的私钥文件逐个与gitee账号的个人公钥或仓库公钥进行匹配,我们必须手动配置私钥文件

假设我有两个gitee账号A、B,现在我需要分别从A、B的仓库中各拉取一个项目,如何配置私钥文件?

尽管上文中的两种配置方式都存在不足,但皆可以解决这个问题。下文我介绍另一种私钥文件配置方式,也是本人一直在使用的。

3.2 公钥文件配置方式三:config配置文件

文件位置:
git 配置远程仓库账号和密码,版本控制,git关联
图中的 config 文件就是公钥配置文件,这个文件无后缀。

下图是其内容。
git 配置远程仓库账号和密码,版本控制,git关联
这是我目前正在使用的配置,下面我一一进行说明。

  • Host:域名别名。
git@gitee.com:yu-chen_xx/xx.git

这是我的一个gitee账号内的仓库note的ssh链接,其中的gitee.com就是域名。“域名别名”就是为其设置一个别名。

git@local:yu-chen_xx/note.git

这是修改后的ssh链接,“域名别名”是local

“域名别名”是什么意思? \color{grey}{“域名别名”是什么意思?} 域名别名是什么意思?
Git无法自动遍历匹配公钥和私钥,故需要我们手动配置。因此config配置文件的作用是告诉Git,身份验证时应匹配哪个公钥文件。

Host的作用是联系ssh链接与配置条目。

我的config文件中有两个配置条目。

  • HostName:原域名。
  • PreferredAuthentications:验证方式,publickey指公钥;
  • IdentityFile:验证文件,上例指公钥文件,可以是绝对路径或相对路径。
  • User:用户名。

前4个配置必填,User配置可有可无。若有,最好与gitee账号的用户名完全相同。

最后

本文采用意识流,可能会给大家的阅读带来不便。其实大家只要稍作参考、自行测试一下,就完全明白了。

如果大家不了解Git、或者想要查找Git命令,可查阅博文《[Git]入门及其常用命令》。

本文完结。文章来源地址https://www.toymoban.com/news/detail-859135.html

到了这里,关于[Git]关联远程库的两种方法及配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git本地仓库关联多个远程仓库的方法

    使用场景:本地仓库需要将代码提交到不同的远程仓库,如既想往gitLab上提交又想提交到gitee,就需要同时关联多个仓库 要将多个远程仓库添加到本地git仓库,可以使用以下命令: 其中, remote_name是你想要给远程仓库起的名字, remote_url是远程仓库的 URL。 例如,如果你想将

    2024年02月09日
    浏览(53)
  • 关于 python 在 pycharm 下载库的两种方法

    正常操作: 1.点击左上角File 。  2.点击setting,进入设置界面 。 3.点击python Interpreter。  4.添加新库时,点击右上侧 “ + ” 号,出现新界面。  5,在搜索框搜索想添加的库,点击左下角 Instal  Package , 等待完成即可。 特殊情况:  此时可能出现失败情况 直接打开电脑搜索栏,

    2024年02月12日
    浏览(42)
  • Git提交代码仓库的两种方式

    目录 一: 两种本地与远程仓库同步 1 git 远程仓库 提交本地版本库操作 提交到远程版本库操作 1.Git 全局设置: 2.增加一个远程仓库地址 3.查询当前存在的远程仓库 5.本地版本库内容提交到远程仓库 6.查询远程仓库 注意:本地版本库提交到远程仓库用户名密码存放位置 远程仓库

    2023年04月14日
    浏览(46)
  • 【Git】GitHub 的两种 URL 及其身份验证

    参考官方文档: Link 远程 URL 是 Git 一种指示“代码存储位置”的绝佳方式。用户只能推送到两类 URL 地址: HTTPS URL,如 https://github.com/user/repo.git SSH URL,如 git@github.com:user/repo.git (推荐使用) HTTPS URL 在所有存储库上都可用,在命令行上使用 HTTPS URL 对远程仓库执行 git clone、

    2024年02月08日
    浏览(53)
  • 本地项目关联远程git仓库

    背景:好久没有新建git仓库了、这次创建本地git仓库和远程推送时 遇到的问题 如果是复制已有项目重新执行1删除git仓库、如果不需要删除本地.git仓库、第一步可以省略  rm -rf .git // 删除本地.git文件 git init // 初始化git仓库 git remote add origin http://172.16.22.22:880/common/frontend.git

    2024年02月07日
    浏览(63)
  • VSCode无法连接远程服务器的两种解决方法

    直接在terminal或cmd中使用ssh命令可以连接服务器,但是在vscode中存在报错,最后一行为 Local server exit: 15 。一直要求Retry或者重新输入密码。 参考 在 /home/user/ 文件夹中删除 .vscode-server 目录,再重新连接。 参考 若解决方式1无效,可以在vscode中打开命令面板 (View - Command Palett

    2024年02月19日
    浏览(52)
  • Git--远程分支与本地分支关联

    当远程仓库新建了一个分支,在本地不存在时,需要把远程仓库中新建的分支与本地分支关联起来,例:远程仓库新建了一个test分支,而本地没有test分支 查看本地分支 说明:发现只有2个分支 查看远程分支 说明:远程仓库上有4个分支,其中我们需要使用的时test_CG_mysql分支

    2024年02月16日
    浏览(64)
  • git创建本地分支并关联远程

    @git创建本地分支并关联远程 注:首先本地跟仓库都没有分支的前提下进行操作 branch 后面参数解释: -a 是查看本地和远程的分支 -vv 是查看本地分支关联的远程分支

    2024年02月09日
    浏览(55)
  • Git仓关联多个远程仓路径

    Git仓如果需要将代码push到多个仓,常用的做法是添加多个远程仓路径,然后分别push。这样虽然可以实现目的,但是需要多次执行push指令,很麻烦。 本文介绍关联多个远程仓路径且执行一次push指令的方法: git remote set-url origin --push --add 首先clone一个仓库,或者本地已经存在

    2024年02月14日
    浏览(35)
  • git关联远程仓库自己分支自用

    初始化仓库 关联远程仓库并创建本地分支 或者创建分支直接从远程分支拉取代码 代码推远程自己的仓库

    2024年02月05日
    浏览(78)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包