当前位置: 首页 > news >正文

【Git】同时在本地使用多个github账号进行github仓库管理

【Git】同时在本地使用多个github账号进行github仓库管理

背景

本地有多个均需要使用的github账号情况,如:项目A(远程仓库A)使用github账号A、项目B(远程仓库B)使用github账号B,项目A和项目B需要同时推进。此时为了维持两个项目开发的需要,需要在本地频繁切换不同github账号。接下来介绍一个”一劳永逸“的方法,在同时开发两个项目的同时避免在本地频繁切换不同github账号。

避免频繁切换账号——在本地使用SSH进行多账号配置

原理

在这里插入图片描述

1、在本地为每个github账号生成SSH key

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_a -C "xxxx@163.com"
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_b -C "xxxx@gmail.com"

此时会生成~/.ssh/id_rsa_a~/.ssh/id_rsa_a.pub~/.ssh/id_rsa_b~/.ssh/id_rsa_b.pub

邮箱是github账号的邮箱。

2、在github账号上添加各自的本地公钥

在github登录账号A → Settings → SSH and GPG keys → New SSH key → 贴上 id_rsa_a.pub 内容

在github登录账号B → Settings → SSH and GPG keys → New SSH key → 贴上 id_rsa_b.pub 内容

3、在本地配置 .ssh/config文件

编辑或创建.ssh/config文件:

nano ~/.ssh/config

在config文件中添加如下内容,不同【github账号】对应不同的【自定义Host】,让本地能够通过【目标Host名称】识别到要【使用哪个github账号】对目标远程仓库进行操作:

# 账号A的配置
Host github-aHostName github.comUser gitIdentityFile ~/.ssh/id_rsa_a# 账号B的配置
Host github-bHostName github.comUser gitIdentityFile ~/.ssh/id_rsa_b

Host的名称可以自行修改、更有辨识度。

4、在本地用自定义Host添加远程仓库

本地进入项目A所在文件夹,执行如下命令:

git remote set-url <项目A的远程仓库名> git@github-a:your-username-a/your-repo.git

注意:用的是 git@github-a: 而不是 git@github.com:,指向 .ssh/config 中的Host配置。

本地进入项目B所在文件夹,执行如下命令:

git remote set-url <项目B的远程仓库名> git@github-b:your-username-b/your-repo.git

5、验证本地对不同github账号的连接是否生效

在本地分别测试如下链接:

ssh -T git@github-a
ssh -T git@github-b

如果看到类似”Hi your-username-a/b! You’ve successfully authenticated…”的输出,则连接成功。

6、进行本地仓库对远程仓库的操作

name-a/b! You’ve successfully authenticated…”的输出,则连接成功。

6、进行本地仓库对远程仓库的操作

现在,每个本地仓库都对应了不同github账号,在切换不同本地仓库时无需反复登录、登出github账号,使用push或者pull命令时本地可以自动识别应该使用哪个github账号的ssh连接。

http://www.xdnf.cn/news/1079101.html

相关文章:

  • 通过Curtain 解决方案保障BIM模型安全共享—建筑业的防泄密实战
  • react-打包和本地预览 ——打包优化
  • 【数据结构】C++的unordered_map/set模拟实现(开散列(哈希桶)作底层)
  • npm 命令入门指南(前端小白版)
  • contenteditable网页富文本编辑无法选中图片
  • 从0到1实战!用Docker部署Qwerty Learner输入法的完整实践过程
  • curl for android
  • Linux多线程(十三)之【POSIX信号量基于环形队列的生产消费模型】
  • OpenCV CUDA模块设备层-----在 GPU上高效地执行两个uint类型值的最小值比较函数vmin2()
  • LeetCode 317 最短距离选址问题详解(Swift 实现 + BFS 多源遍历)
  • 高边驱动 低边驱动
  • 多模态AI Agent技术栈解析:视觉-语言-决策融合的算法原理与实践
  • Kafka生态整合深度解析:构建现代化数据架构的核心枢纽
  • JA3指纹在Web服务器或WAF中集成方案
  • 专题:2025即时零售与各类人群消费行为洞察报告|附400+份报告PDF、原数据表汇总下载
  • MacOS Safari 如何打开F12 开发者工具 Developer Tools
  • 打造一个可维护、可复用的前端权限控制方案(含完整Demo)
  • 请求未达服务端?iOS端HTTPS链路异常的多工具抓包排查记录
  • 【CSS揭秘】笔记
  • 网络基础(3)
  • HTML初学者第二天
  • 利用tcp转发搭建私有云笔记
  • Chart.js 安装使用教程
  • 【强化学习】深度解析 GRPO:从原理到实践的全攻略
  • 怎样理解:source ~/.bash_profile
  • vscode vim插件示例json意义
  • 电子电气架构 --- SOVD功能简单介绍
  • 如何系统性评估运维自动化覆盖率:方法与关注重点
  • Spark流水线数据探查组件
  • 【字节跳动】数据挖掘面试题0002:从转发数据中求原视频用户以及转发的最长深度和二叉排序树指定值