多 Git 账号管理(SSH 模式)

动机

我在使用多个 Git 账号时经常遇到麻烦:每次切换账号都要重新登录,尤其是在浏览器中进行身份验证时,问题更明显。我的默认浏览器是 Edge,而 GitHub 的登录信息却保存在 Chrome 中,每次跳转认证流程都让人头皮发麻。

此外,公司使用 GitLab,强制要求 SSH;而我个人的 GitHub 账号之前是通过 HTTPS 操作的。这样搞下来,在公司和个人项目之间频繁切换,不仅需要反复输入密码,commit 记录也可能出错。

适用于以下场景

  1. 公司项目强制要求使用 SSH 方式进行 clone 或其他 Git 操作。
  2. 多账号频繁使用时,推荐使用 SSH;偶尔使用可选择 GitHub Desktop、封装 Git 的 IDE,或浏览器登录切换。
  3. 拥有 3 个及以上 Git 账号时,浏览器切换效率低,建议使用 SSH。

1. 生成 SSH 密钥对

为每个账号生成一对公钥和私钥:

# 个人 GitHub 账号
ssh-keygen -t ed25519 -C "xxxyyy@gmail.com" -f ~/.ssh/id_ed25519_personal # 公司 GitHub 账号
ssh-keygen -t ed25519 -C "xxxyyy@your-company.com" -f ~/.ssh/id_ed25519_company_github # 公司 GitLab 账号
ssh-keygen -t ed25519 -C "xxxyyy@your-company.com" -f ~/.ssh/id_ed25519_company_gitlab


2. 配置 SSH 配置文件

C:\Users\你的用户名\.ssh\config 中配置如下内容:

# Company GitHub account
Host github.com-company
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_companyGithub # Company GitLab account
Host gitlab.com-company
HostName gitlab.com
User git
IdentityFile ~/.ssh/id_ed25519_companyGitlab # Personal GitHub account
Host github.com-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal

3. 创建账号专属的项目目录和配置文件

3.1 创建三个文件夹

建议将不同账号的项目放在不同路径中,例如:

C:/Projekte/Personal/
C:/Projekte/CompanyGithub/
C:/Projekte/CompanyGitlab/

3.2 分别创建 .gitconfig 文件

个人 GitHub 账号:C:\Users\你的用户名\.gitconfig-personal

[user]
name = xxxyyy
email = xxxyyy@gmail.com

公司 GitHub 账号:C:\Users\你的用户名\.gitconfig-company-github

[user]
name = xxxyyy-dev0511
email = xxxyyy@your-company.com

公司 GitLab 账号:C:\Users\你的用户名\.gitconfig-company-gitlab

[user]
name = xxxyyy
email = xxxyyy@your-company.com

3.3 验证配置

git config --file C:/Users/你的用户名/.gitconfig-personal --list
git config --file C:/Users/你的用户名/.gitconfig-company-github --list
git config --file C:/Users/你的用户名/.gitconfig-company-gitlab --list

4. 配置全局 .gitconfig 文件

C:\Users\你的用户名\.gitconfig 中添加如下内容:

[user]
name = xxxyyy
email = xxxyyy@your-company.com [includeIf "gitdir:C:/Projekte/Personal/"]
path = C:/Users/JinyaoChen/.gitconfig-personal [includeIf "gitdir:C:/Projekte/CompanyGithub/"]
path = C:/Users/JinyaoChen/.gitconfig-company-github [includeIf "gitdir:C:/Projekte/CompanyGitlab/"]
path = C:/Users/JinyaoChen/.gitconfig-company-gitlab

5. 使用 SSH clone 多账号项目

5.1 Clone 公司 GitLab 项目

git clone git@gitlab.com-company:ComnanyRepo/kelvin5/iris/k5-graphql.git

5.2 Clone 公司 GitHub 项目

git clone git@github.com-company:ComnanyRepo/Grafana-Docker.git

5.3 Clone 个人 GitHub 项目

git clone git@github.com-personal:cjy513203427/IADBE.git

Windows下Gitlab多账号配置(SSH)终极解决方案的更多相关文章

  1. 【亲测可用,亦可配置同一平台的不同账号,例如阿里云的两个不同账号】Windows下Git多账号配置,同一电脑多个ssh-key的管理

    Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章<Git-TortoiseGit完整配置流程>的拓展,所以需要对上一篇文章有所了解,当然直接 ...

  2. Windows下Git多账号配置,同一电脑多个ssh-key的管理

    这一篇文章是对上一篇文章<Git-TortoiseGit完整配置流程>的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有一些提到一些基础的操作. <Git-Tort ...

  3. Windows下Git多账号ssh-key(复制自己用)

    Windows下Git多账号配置,同一电脑多个ssh-key的管理 这一篇文章是对上一篇文章<Git-TortoiseGit完整配置流程>的拓展,所以需要对上一篇文章有所了解,当然直接往下 ...

  4. Nginx + Tomcat Windows下的负载均衡配置

     Nginx + Tomcat Windows下的负载均衡配置 一.为什么需要对Tomcat服务器做负载均衡?    Tomcat服务器作为一个Web服务器,其并发数在300-500之间,如果超过50 ...

  5. Windows下pry安装和配置

    Windows下pry安装和配置 pry是一个增强型的交互式命令行工具,比irb强大. 有自动完成功能,自动缩进,有颜色.有更强大的调试功能. pry 安装很简单. 在终端输入: gem instal ...

  6. 【Objective-C】Windows下Objective-C开发环境配置

    [Objective-C]Windows下Objective-C开发环境配置 ftp://ftpmain.gnustep.org/pub/gnustep/binaries/windows/   最近打 ...

  7. Windows下Apache+mod_python+Django配置

    Windows下Apache+mod_python+Django配置 Apache 首先要安装Apache,我安装的版本是2.2.*: Python python肯定是要安装的,我安装的版本是2.5的 ...

  8. Mysql在windows下的免安装配置步骤和重新安装的步骤

    windows下mysql免安装配置 1. 下载mysql免安装压缩包 下载mysql-5.6.22-winx64.zip 解压到本地D:\mysql-5.6.22-winx64 2. 修改配置文件 ...

  9. windows下spark开发环境配置

    http://www.cnblogs.com/davidwang456/p/5032766.html windows下spark开发环境配置 --本篇随笔由同事葛同学提供. windows下spark ...

  10. ACE在windows下的编译及配置(VS2010)

    ACE在windows下的编译及配置(VS2010) 分类:             -[小西南]-              2013-08-06 16:17     2354人阅读     评论( ...

随机推荐

  1. Spring 整合 Junit

    一.导入jar包 二.使用@RunWith 注解替换原有运行器 [main()] /** * * @Company http://www.ithiema.com * @Version 1.0 */ @ ...

  2. Oracle 字符串转多行(REGEXP_SUBSTR)

    方案一: SQL 1.一个数据表(TABLE1_ZK)中存在一个字段(STRS)(存储格式是以[,]隔开的字符串) 2.现需要将其查分为多行数据(每行为其中一个字符串) 3.sql SELECT t. ...

  3. python,提取数据,提取奇数位或者偶数位数据的方法

    如有数组num=["1","2","3","4","5"] 怎么按照奇.偶数位取数? 写法如下 nu ...

  4. 解决chrome浏览器拓展插件颜色变成透明无法使用。

    虚拟机装了chrome之后插件变成了透明的,没办法使用了. 解决办法如下: 1.卸载VMWARE tools 2.地址栏输入: chrome://flags 找到 "Choose ANGLE ...

  5. 使用 Joplin + Git + Gitee 实现笔记的多端同步

    1-远程仓库环境准备 1.1-注册 Gitee 账号 由于使用 Git 作为版本控制工具,所以只要是 Git 支持的托管平台都是可以的.比如 Github.Gitlab.这里使用 Gitee 主要是考 ...

  6. Beyond Compare 4 便携版 添加右键菜单

    Beyond Compare 4 便携版 添加右键菜单 一.从安装版中复制所需的 dll 文件 便携版默认不带 Shell Extension 所需的 dll 文件,可以从安装版复制: 例如,从 &q ...

  7. 【HUST】网安|软件安全课设|记录

    仓库链接 clone之后点开html文件即可使用. 效果如下图: 文章目录 进程通信设计 共享内存(Windows) 初始化共享内存 修改和读取共享内存的内容 共享内存(linux) (尝试使用,但使 ...

  8. MacOS M1 安装python3.5

    因为没法通过brew直接安装python 3.5,因为brew库里已经没有这个版本的python了,因此只能曲线救国,大体流程: 安装brew 通过brew 安装 pyenv 然后通过pyenv 安装 ...

  9. python任务调度之schedule

    本文通过开源项目schedule来学习定时任务如何工作 schedule简介 先来看下做做提供的一个例子 import schedule import time def job(): print(&q ...

  10. 解决ZYNQ-7020开发板使用vitis编译uboot报错和无法正常调试的问题

    整个学习过程是参考正点原子启明星开发板的2020.2版本嵌入式Linux开发指南,在学习uboot移植的时候遇到了问题. 新建工程和配置环境啥的和教程里都一样,就不罗嗦了,这里重点讲和教程不一样的地方 ...