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

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

缘由

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

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

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

寓意

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

名称: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 (待实现) : 例如 e.coding.net/winyh/winsa...

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

csharp 复制代码
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>

perl 复制代码
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 文件可查看配置

相关命令

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

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

arduino 复制代码
git remote remove gitee (远程仓库别名)
git remote remove coding (远程仓库别名)

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

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

csharp 复制代码
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)

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

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

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

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

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

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

javascript 复制代码
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(公钥)

校验连通性

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

java 复制代码
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 ?

本文完

相关推荐
玩电脑的辣条哥2 小时前
Python如何播放本地音乐并在web页面播放
开发语言·前端·python
ew452182 小时前
ElementUI表格表头自定义添加checkbox,点击选中样式不生效
前端·javascript·elementui
suibian52352 小时前
AI时代:前端开发的职业发展路径拓宽
前端·人工智能
Moon.92 小时前
el-table的hasChildren不生效?子级没数据还显示箭头号?树形数据无法展开和收缩
前端·vue.js·html
垚垚 Securify 前沿站2 小时前
深入了解 AppScan 工具的使用:筑牢 Web 应用安全防线
运维·前端·网络·安全·web安全·系统安全
工业甲酰苯胺5 小时前
Vue3 基础概念与环境搭建
前端·javascript·vue.js
lida20036 小时前
Open FPV VTX开源之OSD使用分类
开源
Mr' 郑6 小时前
开源大模型性能追平闭源模型技术路径分析
开源
IT古董6 小时前
【开源向量数据库】Milvus简介
数据库·开源·milvus
mosquito_lover16 小时前
怎么把pyqt界面做的像web一样漂亮
前端·python·pyqt