GIT同时连接gitlab和github

本文详细介绍如何在一台电脑上配置多个Git SSH秘钥,分别用于GitHub和GitLab,包括生成秘钥、添加配置、公钥添加及测试配置的方法。

 

 

很多时候,我们需要同时使用多个git来进行项目管理,比如说公司使用gitlab,而我们自己使用github,此时我们需要在一台电脑上同时管理自己的github上的项目和公司内部的gitlab上的项目,我们就需要配置多个秘钥。

GIT使用参考文档:
Git 基本操作
Pro Git(中文版)

1、生成秘钥

公司的Gitlab生成一个SSH-Key

# 在~/.ssh/目录会生成id-rsa_lab和id-rsa_lab.pub私钥和公钥。
$ ssh-keygen -t rsa -C "注册的gitlab邮箱" -f ~/.ssh/id_rsa_lab

公网Github生成一个SSH-Key

# 在~/.ssh/目录会生成id_rsa_hub和id_rsa_hub.pub私钥和公钥。
$ ssh-keygen -t rsa -C "注册的github邮箱" -f ~/.ssh/id_rsa_hub

2、添加config

在~/.ssh下添加config配置文件,内容如下:

# github key
Host github
    Port 22
    User git
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github_id-rsa
Host gitlab
    Port 22
    User git
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitlab_id-rsa

Host
它涵盖了下面一个段的配置,我们可以通过他来替代将要连接的服务器地址。
这里可以使用任意字段或通配符。
当ssh的时候如果服务器地址能匹配上这里Host指定的值,则Host下面指定的HostName将被作为最终的服务器地址使用,并且将使用该Host字段下面配置的所有自定义配置来覆盖默认的/etc/ssh/ssh_config配置信息。

Port
自定义的端口。默认为22,可不配置

User
自定义的用户名,默认为git,可不配置

HostName
真正连接的服务器地址

PreferredAuthentications
指定优先使用哪种方式验证,支持密码和秘钥验证方式

IdentityFile
指定本次连接使用的密钥文件

使用时,我们只需要指定Host、HostName、IdentityFile即可

HostName的值为下图红色标记的路径

3、将公钥添加到gitlab服务器和github服务器

登录GitLab或GitHub,选择Settings

找到SSH Keys

进入生成的ssh目录 : C:\Documents and Settings\Administrator.ssh (或者 C:\Users\自己电脑用户名.ssh)中, 使用记事本打开 id_rsa.pub 文件, 将该文件中的内容复制;
id_rsa.pub 文件内容 :

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxNoCW8lz3OcT7N+bmgrec5M2WDJMs77aGSYmkydYFWML5GE41nU2hwLdIqkZKpDYBOQ74Gw7oQiKOwGTcByRSkasHVNgt6EaLPCdaadFUW4UB3+XF/DzQkId4miOVNfRu1plbygxE0Uu0qLCn8azDlOmCUwGsaJI0s7lUYYOUoSugR2WBnwacDbTyR5F9wUzCLfoGQdfEIwtI4DXYCOeOX+qRfE07OucExOIWX9HwqxLfdeh1Dvf3CKH1jT02n+713WLwtI2G4chF5y0WYKF0tqR8z9AihBRqyxIdKQtY7DvuYhZohCBWx5T3HosrBuvsag+0E2TcaaZd0Lkoj3ET youEmail@qq.com

4、测试是否配置成功

测试gitlab

ssh -T git@config配置中HostName的名称

 

测试github

ssh -T git@config配置中HostName的名称

参考链接:https://www.jianshu.com/p/88005b56fb4d 

GIT使用参考文档:
Git 基本操作
Pro Git(中文版)

### GitGitLab GitHub 的区别与各自作用 #### Git 的作用 Git 是一个分布式版本控制系统,用于跟踪代码的变更,支持多人协作开发。它可以在本地环境中独立使用,适用于所有需要进行版本控制的软件开发项目,无论是个人开发者还是大型团队[^5]。Git 提供了基本的代码提交、分支管理、合并版本回滚等功能。 #### GitHub 的作用 GitHub 是全球最大的开源代码托管平台,由 GitHub 公司运营。它不仅提供代码托管服务,还支持通过 Web 界面或 Git 命令行工具进行代码管理协作开发。GitHub 因其庞大的开发者社区丰富的开源项目而知名,用户可以通过“Star”收藏项目,或通过“Fork”修改贡献代码。此外,GitHub 提供了 GitHub Pages 用于免费托管静态网站,以及 Marketplace 集成第三方应用服务[^2]。 GitHub 的主要特点包括: - 强大的社区开源文化。 - 支持私有仓库,付费计划提供更多功能。 - 提供项目管理工具,例如 Issues Pull Requests。 #### GitLab 的作用 GitLab 是一个全面的 DevOps 平台,不仅提供代码托管服务,还集成了持续集成/持续部署(CI/CD)、项目管理、代码审查、包管理等功能。GitLab 的目标是实现从软件开发到部署的端到端解决方案。它提供免费的社区版(可自托管),也有企业级的托管服务(SaaS)[^2]。 GitLab 的主要特点包括: - 内置 CI/CD 功能,无需额外配置即可使用。 - 支持自托管云服务,用户可以选择在自己的服务器上部署 GitLab Community Edition 或 Enterprise Edition。 - 更灵活的权限管理,适合企业用户。 - 支持私有项目,即使是免费版也支持私有仓库。 #### GitGitHub GitLab 的区别 - **Git** 是底层的版本控制工具,用于管理代码的版本变更。 - **GitHub** 更适合开源项目社区协作,提供强大的社交功能丰富的开源资源。 - **GitLab** 更适合企业级开发团队,尤其是对 CI/CD 有较高要求、需要精细的权限管理安全控制的项目[^5]。 #### 示例:Git 的基本使用 ```bash # 初始化一个新的 Git 仓库 git init # 添加文件到暂存区 git add . # 提交代码变更 git commit -m "Initial commit" # 连接到远程仓库(例如 GitHubGitLabgit remote add origin https://github.com/username/repository.git # 推送代码到远程仓库 git push -u origin master ``` #### 示例:GitHub GitLab 的 CI/CD 差异 在 GitHub 中,CI/CD 通常需要集成外部工具,例如 GitHub Actions 或 Jenkins。而在 GitLab 中,CI/CD 是内置的,无需额外配置即可使用。 ##### GitHub Actions 示例 ```yaml name: CI Pipeline on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Run tests run: | echo "Running tests..." ``` ##### GitLab CI 示例 ```yaml stages: - build - test - deploy build_job: stage: build script: - echo "Building the application..." test_job: stage: test script: - echo "Running tests..." deploy_job: stage: deploy script: - echo "Deploying to production..." ``` #### 总结 Git 是版本控制的核心工具,GitHub GitLab 则是在 Git 的基础上提供了更多的协作开发支持。GitHub 更适合开源项目社区协作,而 GitLab 更适合企业级开发团队,尤其是需要集成 CI/CD 精细权限管理的项目。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值