Skip to content

20210108关于本地git与远程仓库关联的创建与取消(1)

ziyouzy edited this page Jan 11, 2021 · 1 revision

这个其实是我想从新同步一下本地与远程的仓库,但是由于年代久远,我想先摒弃掉原始的仓库

总之还是因为自己对这方面的只是不了解,需要进行补课

重点在于,我想实现的效果是,mylib(原始名)作为一个大的工具包,内部包含很多小的工具包,想实现类似:

import (
    "encoding"
    "encoding/json"
)

的调用模式,而不是把每个包都作为一个独立的仓库

总之需要做各种各样的动手尝试,先从复制个拷贝开始吧

文章:

https://blog.csdn.net/Jinphy/article/details/81206304?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

初步计划是:

1.先复制2个拷贝
2.用原始的本地仓库尝试与远程同步,再用拷贝1尝试与远程同步,查看其效果

我已经明确了,会使用gitee与github双同步备份的方式确保代码的数据anquqn(非vm镜像)

因此还是需要实践解关联的技术操作

同时双同步需要自己写一个shell脚本

哎,我还是先把gitee上项目的readme写完吧(20210110:15点24分已完成

接下来进行本地仓库与gitee仓库的关联操作,以及本地仓库与github旧仓库的解除关联操作

再在github建立新仓库,使其与本地仓库建立新关联的操作

重点在于:

建立本地仓库和线上远程仓库进行关联,关联的时候需要有一个安全验证,这个验证的方式有两种,一种是http,另一种是采用SSH公钥的方式,我推荐使用后者,前者每次需要验证账号密码,后者应该是属于本地的公钥文件验证,具体方式是:

1.登录gitee后打开个人设置->安全设置->SSH公钥
2.添加公钥->标题->起名字
3.添加实际公钥

这里要明确一点:每个公钥都是本地产生的

而并不是远程仓库产生的

并且是本地的ssh服务产生的,而不是本地的git服务产生的

这篇文章有较为详细的说明:

https://gitee.com/help/articles/4181#article-header0

因此我将尝试生成2个公钥从而分别与gitee和github相匹配,这篇文章介绍的比较详细

https://bryantchang.github.io/2018/07/21/git-pubkey/

说个细节:

“注意:这里的 [email protected] 只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。
 现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱。”

这篇文章对ssh与密钥做了较为细致的解释:

https://blog.csdn.net/liuhaomatou/article/details/51396557

首先,ssh和密钥也是两个独立的技术实现

ssh是一种远程登录系统,之前我尝试用宿主机连接主机编程其实就是用了ssh技术

他会让你选择两种登录模式

一种是传统的用户名+密码

另一种是免登录的密钥模式

github和gitee都是采用了ssh技术,同时,不是一个项目绑定一个密钥,而是一个github账户绑定一个密钥

而他们需要用到ssh技术的地方,并不是账户登录时,而是当用户在本地尝试与远程仓库同步(任何一个仓库,而不是某一个),或者进行尝试进行本地仓库与远程新仓库的关联,或解关联时候会用到

同时,使用方式也是遵循ssh标准的,也就是本地终端发出指令后,可以选择用户名密码登录方式,以及密钥登录方式

由此看出,对于github远程仓库,论坛有论坛的一套权限系统,仓库有仓库的一套权限系统

或者说,git仓库的使用方式是git设计者定的,github只是一个展示代码的论坛,是彼此独立的两套系统

github没有单独设计上传代码的接口,而是采用了git原本的方式,而git原本实现同步代码的方式,正是使用了ssh这个软件

回过头来,思考一下git本地与远程之间是项目与项目之间的密钥关系,还是主机与主机之间的密钥关系

答案是后者,因为ssh本来就是解决两台主机之间的安全登录问题,ssh没有实现针对git某一个项目的密钥安全通信需求

同时git也只是组合了ssh功能模块,并没有继承他或重构他从而实现自身的诸如针对某个项目的密钥安全需求

Clone this wiki locally