Git 如何配置多个远程仓库和免密登录?

news2025/3/11 6:46:08

自我简介:4年导游,10年程序员,最近6年一直深耕低代码领域,分享低代码和AI领域见解。

通用后台管理系统 代号:虎鲸

缘由

每次开发后台界面都会有很多相同模块,尝试抽离出公共模块作为快速开发的基座。

目标:实现后台管理系统常用功能模块,基于此项目快速拓展其他产品

原则:简洁-清晰-强大好用

寓意

代号:虎鲸 (像鲸一样承载)

名称:winsax

寓意:wins(双赢)+ a(领先)+ x (拓展)


代码仓库:

github: 国外仓库

gitee(同步更新): 国内仓库

欢迎各位大佬贡献代码~ dev / feature 分支

技术方案

后端 Golang / Rust / Node 提供 restful api 接口

前端 Next.js / 或者后端模板引擎渲染

TodoList

  1. 当前项目只实现 后台管理界面
  2. 后续实现标准API接口

解决问题(如题)

本着解决问题,积累经验的原则

愿景很好,如何实现?

问题一

github 访问不稳定,那么如何实现git仓库配置多个仓库并实现代码同步更新托管?

调研发现有两种方式实现:(本文选择的第二种)

第一种:添加多个远程地址,给不同别名,多条命令,分别更新 ⌛️

第二种:添加多个远程地址,一条命令同步更新 👍

方式一

第一步:首先在不同平台(github / gitee / coding)新建仓库地址

github: 国外仓库

gitee(同步更新): 国内仓库

coding (待实现) : 例如 https://e.coding.net/winyh/winsax.git

第二步:分别添加远程地址

git remote add origin https://github.com/winyh/winsax.git
git remote add gitee https://gitee.com/winyh/winsax.git 
git remote add coding https://xxxxx.git 

第三步:执行提交(当前分支 main)

git push <remote_name> <branch_name>

git add .
git commit -m 'feat:多仓库地址测试'

git push -u gitee main

或者

git push origin main (输入账号/密码 推送到 github 仓库)
git push gitee main  (输入账号/密码 推送到 gitee 仓库)
git push coding main (输入账号/密码 推送到 coding 仓库)

tips:本地仓库 .git/config 文件可查看配置

相关命令

git remote -v 查看远程仓库地址 (会显示3个远程地址)
git remote remove origin(移除远程仓库)
方式二(推荐)

第一步:删除 gitee 和 coding 别名仓库地址

git remote remove gitee (远程仓库别名)
git remote remove coding (远程仓库别名)

第二步:查看远程仓库地址并添加其他仓库

git remote set-url --add origin <origin_url>

git remote -v 查看远程仓库地址 (会显示1个远程地址)
git remote set-url --add origin https://gitee.com/winyh/winsax.git (gitee平台)
git remote set-url --add origin https://xxxxx.git (coding平台)

第三步:执行提交(当前分支 main)

git add .
git commit -m 'feat:多仓库快速提交'
git push 
或者
git push origin -all
问题二

在推送代码时需要输入多次不同平台的密码~ 重复动作或者代码就可以考虑抽象 / 提效了

解决办法:配置SSH公钥,部署到不同的代码托管平台,实现免密登录

SSH 的全称为 Secure Shell 即安全外壳协议,是一种加密的网络传输协议。它能够在公开的网络环境中提供安全的数据传输环境,通常用于登录远程主机与推拉代码。

生成公钥(本文为 mac 环境)

添加本地全局配置(–global / --local / --system)

git config --global user.name "winyh" 
git config --global user.email "your-email@qq.com"

ssh-keygen -t rsa -C "your-email@qq.com" (基于邮箱生成公钥)

cat  ~/.ssh/id_rsa.pub (查看公钥串)

生成公钥时,中间会有一个询问过程,全部敲enter键,一般是有3次(询问密钥存放地址 / 输入 / 确认密码)

在这里插入图片描述

密码可以考虑给空值, 输入/确认都按 enter 就行

生成公共后会显示密钥存放地址

将公钥串部署添加到不同平台(github / gitee / coding)的 SSH key 配置中(参考coding平台)

id_rsa(私钥),id_rsa.pub(公钥)

校验连通性

在本地运行首次连接时的公钥认证命令:

ssh -T git@github.com (github平台)
ssh -T git@gitee.com (gitee平台)
ssh -T git@e.coding.net (coding平台)

ssh-keygen -R xxx.xxx.xxx.xxx` 命令可以删除 known_hosts 文件中这个主机的旧公钥

一般提示如下:

github 平台

在这里插入图片描述

gitee 和 coding 平台

在这里插入图片描述

这样使用命令 git pull/push 就不用输入密码了,这是因为刚才在生成公钥时,没有输入密码,所以当你选择SSH地址传输时,就可免密码使用命令 git pull/push

至此解决了两个问题:

1.如何实现git仓库配置多个仓库并实现代码同步更新托管?

2.如何实现多仓库平台免密pull / push ?

补充

如果需要单独更新github仓库 main 分支跟本地仓库同步可执行

git pull https://github.com/winyh/winsax.git main

打标签并加备注信息

git tag v0.0.3 -m '发布v0.0.3版本'
git push --tags  推送标签到远程仓库

本文完

AI时代,对各行业的冲击力只会越来越大,随着AI大模型的竞赛,越来越多强悍的AI模型都会涌现,像软件开发行业的很多工作都会被取代。软件将不再是程序员的专属产物,会由AI创建很多的软件产品。

4年导游,10年程序员,深耕低代码领域6年,持续分享低代码和AI领域领域有价值的思考和沉淀,欢迎关注:winyh5

后续会推出:【挑战365天做 100 套常见的互联网系统】系列文章,让大家可以真实感受到低代码快速落地项目的可行性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2313092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux篇】从冯诺依曼到进程管理:计算机体系与操作系统的核心逻辑

&#x1f4cc; 个人主页&#xff1a; 孙同学_ &#x1f527; 文章专栏&#xff1a;Liunx &#x1f4a1; 关注我&#xff0c;分享经验&#xff0c;助你少走弯路&#xff01; 文章目录 1.冯诺依曼体系结构存储分级理解数据流动 2. 操作系统(Operator System)2.1 概念2.2 设计OS的…

【Linux docker】关于docker启动出错的解决方法。

无论遇到什么docker启动不了的问题 就是 查看docker状态sytemctl status docker查看docker日志sudo journalctl -u docker.service查看docker三个配置文件&#xff1a;/etc/docker/daemon.json&#xff08;如果存在&#xff09; /etc/systemd/system/docker.service&#xff…

【医院内部控制专题】7.医院内部控制环境要素剖析(三):人力资源政策

医院成本核算、绩效管理、运营统计、内部控制、管理会计专题索引 一、引言 在当今医疗行业竞争日益激烈的背景下,医院内部控制的重要性愈发凸显。内部控制作为医院管理的关键组成部分,对于保障医院资产安全、提高会计信息质量、提升运营效率以及实现战略目标起着至关重要的…

计算机网络——交换机

一、什么是交换机&#xff1f; 交换机&#xff08;Switch&#xff09;是局域网&#xff08;LAN&#xff09;中的核心设备&#xff0c;负责在 数据链路层&#xff08;OSI第二层&#xff09;高效转发数据帧。它像一位“智能交通警察”&#xff0c;根据设备的 MAC地址 精准引导数…

CentOS7离线部署安装Dify

离线部署安装Dify 在安装 Dify 之前&#xff0c;请确保您的机器满足以下最低系统要求&#xff1a; CPU > 2 核 内存 > 4 GiB 1.安装docker和docker compose 启动 Dify 服务器最简单的方式是通过docker compose。因此现在服务器上安装好docker和docker compose&#xf…

力扣hot100_二叉树(4)_python版本

一、199. 二叉树的右视图 思路&#xff1a; 直接复用层序遍历的代码&#xff0c;然后取每层的最后一个节点代码&#xff1a; class Solution:def rightSideView(self, root: Optional[TreeNode]) -> List[int]:层序遍历取每层的第一个if not root: return []res []queue …

bug-Ant中a-select的placeholder不生效(绑定默认值为undefined)

1.问题 Ant中使用a-select下拉框时&#xff0c;placeholder设置输入框显示默认值提示&#xff0c;vue2ant null与undefined在js中明确的区别&#xff1a; null&#xff1a;一个值被定义&#xff0c;定义为“空值” undefined&#xff1a;根本不存在定义 2.解决 2.1 a-select使…

颠覆语言认知的革命!神经概率语言模型如何突破人类思维边界?

颠覆语言认知的革命&#xff01;神经概率语言模型如何突破人类思维边界&#xff1f; 一、传统模型的世纪困境&#xff1a;当n-gram遇上"月光族难题" 令人震惊的案例&#xff1a;2012年Google语音识别系统将 用户说&#xff1a;“我要还信用卡” 系统识别&#xff…

练习:关于静态路由,手工汇总,路由黑洞,缺省路由相关

这是题目,我已经画分好了网段,题目要求是这样的: 划分网段 我为什么一个网段划了6个可用IP(一个网段8个地址)呢,因为我刚开始吧环回接口理解成一个主机了,导致我认为两个环回主机在一个网段,其实每个网段只需要2个地址就可以完成这个练习,我懒得划了,就按第一张图的网段来吧…

J6打卡——pytorch实现ResNeXt-50实现猴痘检测

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客 &#x1f356; 原作者&#xff1a;K同学啊 1.检查GPU import torch import torch.nn as nn import torchvision.transforms as transforms import torchvision from torchvision import transforms, d…

vue+dhtmlx-gantt 实现甘特图-快速入门【甘特图】

文章目录 一、前言二、使用说明2.1 引入依赖2.2 引入组件2.3 引入dhtmlx-gantt2.4 甘特图数据配置2.5 初始化配置 三、代码示例3.1 Vue2完整示例3.2 Vue3 完整示例 四、效果图 一、前言 dhtmlxGantt 是一款功能强大的甘特图组件&#xff0c;支持 Vue 3 集成。它提供了丰富的功…

音视频入门基础:RTP专题(16)——RTP封装音频时,音频的有效载荷结构

一、引言 《RFC 3640》和《RFC 6416》分别定义了两种对MPEG-4流的RTP封包方式&#xff0c;这两个文档都可以从RFC官网下载&#xff1a; RFC Editor 本文主要对《RFC 3640》中的音频打包方式进行简介。《RFC 3640》总共有43页&#xff0c;本文下面所说的“页数”是指在pdf阅读…

超分之DeSRA

Desra: detect and delete the artifacts of gan-based real-world super-resolution models.DeSRA&#xff1a;检测并消除基于GAN的真实世界超分辨率模型中的伪影Xie L, Wang X, Chen X, et al.arXiv preprint arXiv:2307.02457, 2023. 摘要 背景&#xff1a; GAN-SR模型虽然…

Ubuntu用户安装cpolar内网穿透

前言 Cpolar作为一款体积小巧却功能强大的内网穿透软件&#xff0c;不仅能够在多种环境和应用场景中发挥巨大作用&#xff0c;还能适应多种操作系统&#xff0c;应用最为广泛的Windows、Mac OS系统自不必多说&#xff0c;稍显小众的Linux、树莓派、群辉等也在起支持之列&#…

小程序事件系统 —— 33 事件传参 - data-*自定义数据

事件传参&#xff1a;在触发事件时&#xff0c;将一些数据作为参数传递给事件处理函数的过程&#xff0c;就是事件传参&#xff1b; 在微信小程序中&#xff0c;我们经常会在组件上添加一些自定义数据&#xff0c;然后在事件处理函数中获取这些自定义数据&#xff0c;从而完成…

【Java学习】包装类

面向对象系列九 包装类变量 一、装箱 1.实例化包装对象 2.静态缓存池 3.写法 二、拆箱 包装类变量 每个基本数据类型都有对应的基本类型的包装类变量&#xff0c;将基本数据类型通过对应的包装类对象载入着进入到类与对象面向对象体系 一、装箱 Integer.valueOf(int) —…

中国自动化领域零部件研究报告

一、引言 1.1 研究背景与目的 随着科技的飞速发展&#xff0c;自动化技术已成为推动各行业转型升级的关键力量。中国自动化领域零部件行业在近年来取得了显著进展&#xff0c;市场规模持续扩大&#xff0c;技术水平不断提升。在政策支持与市场需求的双重驱动下&#xff0c;中…

MySQL数据集成:高效数据同步与监控

MySQL数据集成案例分享&#xff1a;user-钉钉部门树-名称刷新 在企业信息系统中&#xff0c;数据的高效流动和准确同步是确保业务连续性和决策支持的重要环节。本文将聚焦于一个具体的系统对接集成案例——将MySQL中的数据集成到另一个MySQL数据库中&#xff0c;方案名称为“u…

时序数据库TimescaleDB基本操作示例

好的&#xff01;以下是使用 TimescaleDB 的 Java 示例&#xff08;基于 JDBC&#xff0c;因为 TimescaleDB 是 PostgreSQL 的扩展&#xff0c;官方未提供独立的 Java SDK&#xff09;&#xff1a; 1. 添加依赖&#xff08;Maven&#xff09; <dependency><groupId&g…

【VBA】WPS/PPT设置标题字体

通过VBA&#xff0c;配合左上角的快速访问工具栏&#xff0c;实现自动化调整 选中文本框的 字体位置、大小、颜色。 配合quicker更加便捷 Sub DisableAutoWrapAndFormat()Dim shp As Shape 检查是否选中了一个形状&#xff08;文本框&#xff09;If ActiveWindow.Selection.Typ…