当前位置: 首页 > 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.dtcms.com/a/265885.html

相关文章:

  • C++ 网络编程(14) asio多线程模型IOThreadPool
  • 【数据结构】树的基本操作
  • 阿里云服务网格ASM实践
  • 抗辐照芯片在核电厂火灾探测器中的应用优势与性能解析
  • springMvc的简单使用:要求在浏览器发起请求,由springMVC接受请求并响应,将个人简历信息展示到浏览器
  • Java 原生 HTTP Client
  • https如何利用工具ssl证书;使用自己生成的证书
  • http、SSL、TLS、https、证书
  • 【交互设计】UI 与 UX 简介:从核心概念到行业实践
  • 微算法科技(NASDAQ MLGO)基于量子图像处理的边缘检测算法:开拓图像分析新视野
  • [2025CVPR]SEEN-DA:基于语义熵引导的领域感知注意力机制
  • 通过观看数百个外科手术视频讲座来学习多模态表征|文献速递-最新论文分享
  • 【数据结构】哈希——闭散列/开散列模拟实现(C++)
  • [论文阅读] 人工智能 | 在非CUDA硬件上运行几何学习:基于Intel Gaudi-v2 HPU的PyTorch框架移植实践
  • Stable Diffusion 项目实战落地:AI照片修复 第一篇 从黑白到彩色:用AI给照片上色的魔法之旅
  • stm32f103c8t6---ymodem协议串口IAP升级(只教怎么操作,略讲原理,100%成功!)
  • laravel基础:隐式模型绑定的用法和介绍
  • 【AI】大语言模型(LLM) NLP
  • STM32-第二节-GPIO输入(按键,传感器)
  • [科普]UART、RS232、RS422、RS485、TTL:深入解析串行通信家族
  • uniapp 使用ffmpeg播放rtsp
  • 网络基础(1)
  • 铁血联盟3 中文 免安 离线运行版
  • 基于路径质量的AI负载均衡异常路径检测与恢复策略
  • HAL库(Hardware Abstraction Layer,硬件抽象层)核心理解
  • 遇到该问题:kex_exchange_identification: read: Connection reset`的解决办法
  • VBA初学3----实战(VBA实现Excel转csv)
  • 《2025年攻防演练必修漏洞清单》
  • C++11 shared_ptr 原理与详细教程
  • uniapp打包微信小程序主包过大问题_uniapp 微信小程序时主包太大和vendor.js过大