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

Windows 配置 SSH 密钥|本地项目推送 GitHub/Gitee/GitCode

一、前言

日常开发常用代码托管平台:海外GitHub、国内Gitee(码云)、GitCode。 三个平台 Git 底层逻辑一致,但 SSH 地址、部分交互细节略有区别。

本文实现一套通用流程: SSH 密钥生成 → 平台公钥配置 → 本地项目.gitignore编写 → Git 初始化 → 规范提交代码 → 推送远程仓库。

演示环境:Windows 11 专业版、Git 2.51.1

二、前置准备

  1. 安装 Git,推荐默认选项完成安装;
  2. 注册对应平台账号(GitHub / Gitee / GitCode);
  3. 在网页端新建远程仓库:

✅最佳实践:创建仓库不要勾选初始化 README、LICENSE,从根源规避推送冲突; ⚠️如果仓库已经自动生成 README,后文提供冲突解决方案。

三、步骤 1:生成 SSH 密钥 Ed25519 / RSA 选型(三大平台全部支持)

SSH 用于免密推送代码,避免每次输入账号密码。目前主流两种加密算法:

方案 1【优先推荐】Ed25519(椭圆曲线算法)

密钥更小、签名速度更快、安全性更高,GitHub/Gitee/GitCode 全部原生支持。

ssh-keygen -t ed25519 -C "你的邮箱"

方案 2【老旧设备兼容备选】RSA 4096

兼容极低版本 OpenSSH 设备,通用性最强

ssh-keygen -t rsa -b 4096 -C "你的邮箱"

RSA vs Ed25519 对比

特性RSA 4096Ed25519
算法类型大整数分解椭圆曲线密码
密钥长度4096bit256bit
生成速度较慢更快
平台支持全平台兼容新版 OpenSSH,主流代码平台支持

执行操作

运行命令后连续三次回车,不设置密钥密码。 生成目录:C:\Users\用户名\.ssh\

  • id_ed25519/id_rsa:私钥,绝对不能泄露
  • id_ed25519.pub/id_rsa.pub:公钥,记事本打开,完整复制所有内容

💡小技巧:同一套公钥,可以同时添加到 GitHub、Gitee、GitCode 三个平台,不用重复生成多组密钥!

四、步骤 2:三大平台分别配置公钥入口

1)GitHub

头像 → Settings → SSH and GPG keys → New SSH key 粘贴公钥,保存

2)Gitee(码云)

头像 → 设置 → SSH 公钥 → 添加公钥

3)GitCode

头像 → 设置 → SSH 密钥 → 添加公钥

五、连通性测试命令(区分平台)

# GitHub 测试 ssh -T git@github.com # Gitee 测试 ssh -T git@shturl.cc # GitCode 测试 ssh -T git@gitcode.com

首次连接提示:Are you sure you want to continue connecting ?输入yes回车,出现欢迎提示即代表 SSH 配置成功。

六、步骤 3:项目根目录配置 .gitignore

本次需求:保留 video 空文件夹,不上传内部视频;忽略临时文件、Python 缓存。 项目根目录新建.gitignore

Windows 直接新建文件报错时,文件名输入.gitignore.(末尾带小数点),系统自动修正。

# 保留video文件夹,忽略文件夹内部所有文件 video/* # Python缓存 __pycache__/ *.pyc *.pyo # 日志、临时文件 *.log *.tmp

验证忽略规则(推荐)

模拟推送,预览将要上传的文件,检验过滤规则是否生效

git add . --dry-run

七、步骤 4:本地仓库初始化 & 关联远程仓库

进入项目根目录执行:

git init

三大平台 SSH 地址格式对照

# GitHub git remote add origin git@github.com:用户名/仓库名.git # Gitee git remote add origin git@shturl.cc:用户名/仓库名.git # GitCode git remote add origin git@gitcode.com:用户名/仓库名.git

⚠️注意:不要混合使用 SSH 地址和 HTTPS 地址,配置 SSH 后全程使用 SSH 链接。

八、步骤 5:文件暂存 + Angular 约定式提交规范(重点)

git add .

🔥 Angular 约定式提交标准规范

标准格式:

<type>(<scope>): <subject> <body> <footer>
  1. type(变更类型,必填)
  • feat:新增功能、新项目初次上传
  • fix:修复代码 Bug
  • docs:文档修改
  • refactor:代码重构,无功能变更
  • perf:性能优化
  • style:代码格式调整(空格、缩进)
  • test:新增 / 修改测试代码
  • chore:构建脚本、依赖、环境配置更新
  1. scope(可选):标明改动模块,例如(Vision_Dev)
  2. subject:简短描述,小写开头,结尾不加句号

日常单行简写(绝大多数场景使用)

git commit -m "feat: 上传Python机器视觉开发项目"

复杂多行完整版(大型项目)

git commit -m "feat(Vision_Dev): 上传机器视觉demo 新增人脸检测demo1、demo2 内置haar人脸分类器、测试图片 配置.gitignore过滤视频资源 "

规范优势:版本历史清晰,可自动生成项目更新日志,团队协作可读性大幅提升。

九、步骤 6:推送远程仓库,高频报错解决方案

报错 1:src refspec main does not match any

原因:旧版 git init 默认分支为master;GitHub/Gitee/GitCode 远程仓库默认分支为main,名称不匹配。

解决方案:本地分支重命名

git branch -M main

报错 2:remote contains work that you do not have locally / [rejected] main -> main (fetch first)

原因:远程仓库创建时自动生成 README,本地仓库全新初始化,两者没有共同提交历史。 两种方案:

方案 A【单人私有仓库可用】强制推送覆盖远程

⚠️高危!多人协作绝对禁止使用,会覆盖他人代码

git push -u origin main --force
方案 B【通用标准方案,多人协作首选】拉取远程代码合并
git pull origin main --allow-unrelated-histories git push -u origin main

--allow-unrelated-histories专门解决本地、远程仓库无共同提交历史的冲突。

推送成功标识

控制台输出包含xxx -> main,代表推送完成,刷新网页仓库查看代码。

十、后续迭代通用命令模板

首次绑定远程之后,后续更新代码直接执行:

git add . git commit -m "feat(Vision_Dev): 新增Demo" git push

十一、通用踩坑总结

  1. 一套 SSH 公钥可同时绑定 GitHub、Gitee、GitCode,无需重复生成;
  2. 优先 Ed25519 密钥,老旧环境再选用 RSA4096;
  3. .gitignore必须执行git add之前配置,已加入暂存区文件不会自动过滤;
  4. video/完全忽略文件夹;video/*保留空文件夹,仅过滤内部文件;
  5. 区分警告 warning 和错误 error,换行符警告不会阻断推送;
  6. 严格使用约定式提交规范,方便长期维护项目;
  7. --force强制推送谨慎使用,仅个人独立仓库场景考虑。
http://www.jsqmd.com/news/1331813/

相关文章:

  • 甘肃小吃品牌哪家好? - 中媒介
  • HTTP请求报文深度解析:从GET/POST格式到502错误排查
  • HTTP协议演进:从1.0到3.0与HTTPS的性能优化与实战指南
  • 钢结构工程配套产品哪家专业? - 中媒介
  • 手把手教你分析C语言if架构代码最终如何用arm汇编实现
  • 如何高效管理Windows右键菜单:专业级解决方案完全指南
  • 桂林中高端酒店哪家好? - 中媒介
  • GPU-Z工具详解:从显卡参数识别到实时监控与性能优化
  • Unity游戏开发:构建银河恶魔城多样化敌人AI系统与状态机设计
  • 深入解析软件系统中的循环依赖、竞态条件与消息循环问题
  • MySQL面试核心:索引、事务与性能优化实战指南
  • 本地桌面 AI OpenClaw v2.9.0 部署指南,实现电脑任务自动执行(含安装包)
  • 通信传输码深度解析:从AMI、HDB3到CMI的工程实践与选型指南
  • Ubuntu系统NVIDIA驱动安装与CUDA环境配置全攻略
  • 2026.8.3总结
  • 国际课程小班制教学哪家互动性强? - 中媒介
  • 卫生巾哪家设计合理? - 中媒介
  • Windows右键菜单终极清理指南:ContextMenuManager让你的右键菜单重获新生
  • MCP Apps:AI原生集成如何重塑SaaS交互与自动化
  • 【多组消除谐波PWM双极波形的解决方案】两电平三相逆变器的选择性谐波消除PWM(SHEPWM))四分之一周期具有3、5和7个开关角的三相两电平逆变器的选择性谐波消除PWM(SHEPWM)(Matla)
  • 3分钟极速上手:用XUnity.AutoTranslator让外语游戏秒变中文版
  • 告别重复工作!OpenClaw Windows 一键包部署与自动化指令实战(含安装包)
  • 老码农实战解析:AI Agent Skill设计原理与工程实现指南
  • 从玩具到工具:构建健壮AI对话助手的工程化实践
  • 「博客翻译·译述」Triton 插件扩展:开箱即用的 TLX 与自定义编译器 Pass
  • 家庭洗衣液贴牌品牌供应商 - 中媒介
  • 文旅vi设计公司资质核验,这些要点助你选到靠谱设计团队
  • 洛阳特色菜哪家推荐? - 中媒介
  • 5W 迷你充电器成本之王|屹晶 EG1123 集成 700V BJT 准谐振原边开关,6W 以内小功率极致性价比方案
  • Unity集成AI骨骼检测:低成本实现实时角色动画与体感交互