当前位置: 首页 > 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.lryc.cn/news/579552.html

相关文章:

  • 两级缓存 Caffeine + Redis 架构:原理、实现与实践
  • locate 命令更新机制详解
  • 小红书自动化操作:使用本地Chrome和User Data实现高效反检测
  • Linux系统(信号篇):信号的处理
  • spring6合集——spring概述以及OCP、DIP、IOC原则
  • MongoDB Memory Server与完整的MongoDB的主要区别
  • CANFD芯片在工控机数据采集和测量中的应用分析
  • 重新学习Vue中的按键监听和鼠标监听
  • PDF的图片文字识别工具
  • 110道Python面试题(真题)
  • Spring AI ETL Pipeline使用指南
  • 01_前后端打包发布、API接口调试
  • Stata如何做机器学习?——SHAP解释框架下的足球运动员价值驱动因素识别:基于H2O集成学习模型
  • Spring生态:引领企业级开发新纪元
  • Linux开发工具——gcc/g++
  • 【CSS揭秘】笔记
  • Ubuntu20.4编译AOSP源码实践
  • 开源 C# .net mvc 开发(六)发送邮件、定时以及CMD编程
  • XILINX Ultrascale+ Kintex系列FPGA的架构
  • 支持向量机(SVM)分类
  • ReactNative【实战系列教程】我的小红书 3 -- 自定义底栏Tab导航(含图片选择 expo-image-picker 的使用)
  • GPT-2论文阅读:Language Models are Unsupervised Multitask Learners
  • Mac电脑 触摸板增强工具 BetterTouchTool
  • 探秘展销编辑器:相较于传统展销的卓越优势与甄选指南​
  • Redis实现哨兵模式
  • MCP协议打破数据孤岛
  • 在Ubuntu24上安装ollama
  • VsCode 配置 C/C++ 开发环境
  • 【第三章:神经网络原理详解与Pytorch入门】01.神经网络算法理论详解与实践-(3)神经网络中的前向传播、反向传播的原理与实现
  • JavaScript的初步学习