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

Windows环境下实现GitLab与Gitee仓库代码提交隔离 - 实践

1. 背景

在开发工作中,我需要同时使用2个代码托管平台:公司统一使用的GitLab和个人学习用的 Gitee。我希望能够在同一台电脑上方便地管理和提交两个平台的代码,实现账号和提交内容的有效隔离。

前提条件:

  • 已安装Git Bash、TortoiseGit及相关工具链;
  • 已完成GitLab环境配置(SSH密钥已部署)

2. 实现步骤

2.1. 在.ssh目录生成gitee对应的RSA密钥

进入电脑.ssh的目录,一般为C:\Users\Administrator\.ssh,右键点击Git Bash here,输入如下命令创建gitee对应的ssh key,提示输入文件命名和密码,命名为amber_gitee,密码回车设为空;随后在目录下便生成了amber_gitee.pub(# 公钥)和amber_gitee(# 私钥)两个文件。

ssh-keygen -t rsa -C 1353922342@qq.com

2.2. 将gitee对应的公钥上传到gitee服务器

打开amber_gitee.pub,复制ssh key,粘贴到下图位置;

2.3. 在.ssh目录创建config文本文件并完成配置

Git Bash here输入命令touch config,生成config文件,打开config文件,进行相关配置;

config文件配置如下:

# gitlab
Host yeestor.gitlab
HostName gitlab.yeestor.com
User amber.chen
PreferredAuthentications publickey
IdentityFile C:\Users\Administrator\.ssh\id_rsa
# Gitee
Host gitee.com
HostName gitee.com
User amber_chen
PreferredAuthentications publickey
IdentityFile C:\Users\Administrator\.ssh\amber_gitee
# 配置文件参数
# Host : 可以取自己喜欢的名字,会影响git相关命令,Host mygithub 命令为 git clone git@mygithub:PopFisher/AndroidRotateAnim.git
# HostName : 真实的域名地址
# User : 配置使用用户名
# PreferredAuthentications: 配置登录时用什么权限认证,可设为publickey,password publickey,keyboard-interactive等
# IdentityFile : id_rsa的地址,最好写绝对地址

2.4. 测试配置是否成功

Git Bash here输入如下命令后会自动在.ssh目录生成known_hosts文件,将把私钥配置进去;

2.5. 设置全局的用户名和邮箱

git config --global user.name 'amber_chen' 
git config --global user.email '1353922342@qq.com'

2.6. clone gitee代码

打开gitee上的代码仓库,复制其对应的clone命令,如下图所示,执行该命令即可clone到本地;

2.7. 使用TortoiseGit push到远端仓库

此时可以通过TortoiseGit Commit代码,但是不能通过TortoiseGit push到远端,因为TortoiseGit使用的是扩展名为ppk的密钥,而不是ssh-keygen生成的RSA密钥。因此需要用到TortoiseGit的putty key generator工具来生成适用于TortoiseGit的ppk密钥。

生成步骤省略,详见文章TortoiseGit的使用教程_tortoisegit用法-CSDN博客

右键TortoiseGit → Settings → Remote,选择amber_gitee.pp,应用并确定后即可通过TortoiseGit提交代码到远端;

参考文章:

  1. Windows下Git多账号配置,同一电脑多个ssh-key的管理 - popfisher - 博客园
  2. 一台电脑上配置多个git账号(gitee),向不同git线上仓库提交(命令行/TortoiseGit同时) 代码_多个项目如何往不同的git网站提交代码-CSDN博客
http://www.jsqmd.com/news/2399/

相关文章:

  • Julia 实现基于模板匹配的验证码识别方法
  • 用 Julia 的频域滤波技术识别含干扰线的验证码
  • Feminism in China
  • 大模型微调示例四之Llama-Factory-DPO - 教程
  • 第9节-子查询-ALL - 详解
  • 软件工程感想
  • n8n+MySQL实现数据库查询!
  • My Tricks
  • 完整教程:机器学习入门,支持向量机
  • firewalld 端口流量转发
  • [PaperReading] Qwen2-VL: Enhancing Vision-Language Model’s Perception of the World at Any Resolution
  • 谈谈对软件工程的理解
  • [PaperReading] MemGPT: Towards LLMs as Operating Systems
  • 总线的性能指标
  • VoxCPM:新一代高拟真语音生成模型
  • Day20封装的初步认识
  • 【Qt开发】显示类控件(三)-> QProgressBar - 详解
  • 完整教程:数据结构与算法-树和二叉树-二叉树的存储结构(Binary Tree)
  • 工业相机与镜头靶面尺寸的关系:从原理到选型的避坑指南 - 教程
  • 提供优雅报错能力
  • Security Onion Solution
  • 详细介绍:MySQL进阶学习
  • 时序数据库 TimechoDB V2.0.6 发布 | 新增查询写回、黑白名单等功能
  • NLP:驱动人工智能迈向 “理解” 与 “对话” 的核心引擎 - 教程
  • Python精品任务-基于python的个性化音乐推荐架构的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 旧手机改服务器-旧Android手机改Linux服务器Termux方案
  • 第二篇
  • 实用指南:网站抓包怎么做?(网站抓包教程 HTTPS 抓包 浏览器抓包 服务器端流量分析 网站安全与调试)
  • 学习嵌入式的第三十二天——网络编程——TCP - 实践
  • EasyDSS “进度条预览”黑科技,如何重塑视频点播的交互体验?