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

Git 10 ,使用 SSH 提升 Git 操作速度的实践指南( Git 拉取推送响应慢 )

目录

前言
一、背景与问题分析
1.1 Gitee 与项目仓库
1.2 公钥与仓库的关系
1.3 当前问题表现
二、检测与准备工作
2.1 检查当前远程仓库协议
2.2 检查本地 SSH 公钥
2.3 添加公钥到 Gitee
2.4 配置 .ssh/config 文件(Windows 示例)
三、切换地址与验证
3.1 修改项目远程地址为 SSH
3.2 测试 SSH 连接
3.3 测试 Git 操作
四、注意事项与最佳实践
五、本文总结

前言

在日常开发中,我们经常需要从远程代码仓库拉取或推送代码。在国内,Gitee 是常用的代码托管平台之一。很多开发者在使用 VS Code 或命令行执行 git pullgit push 时,会遇到速度慢或者需要频繁输入账号密码的问题。本文将详细讲解如何通过配置 SSH 公钥,使本地项目使用 SSH 协议访问 Gitee 仓库,从而提高 Git 操作效率,并介绍相关注意事项和配置方法

一、背景与问题分析

1.1 Gitee 与项目仓库

Gitee 是国内领先的 Git 代码托管平台,类似 GitHub。每个开发者的账号下可以有多个仓库(Repository),每个仓库用于存放一个或多个项目的代码。

在 Git 操作中,远程仓库地址决定了本地如何与远程仓库通信。Gitee 支持两种协议访问仓库:

  1. HTTPS 协议

    • 格式示例:https://gitee.com/用户名/仓库名.git

    • 每次操作都需要通过账号密码或 Token 验证。

    • 数据传输需要进行 TLS 握手和加密,速度相对较慢,尤其是在国内网络环境下。

  2. SSH 协议

    • 格式示例:git@gitee.com:用户名/仓库名.git

    • 使用 SSH 公钥进行认证,无需每次输入密码。

    • 传输稳定、速度快,并可同时支持多仓库操作。

1.2 公钥与仓库的关系

SSH 公钥是本地计算机身份的凭证,与远程 Gitee 账号绑定:

  • 私钥(id_rsa:保存在本地 .ssh 文件夹中,不可泄露。

  • 公钥(id_rsa.pub:添加到 Gitee 账号,授权本地私钥访问你的仓库。

注意:一把公钥可以访问同一账号下的所有仓库,不必为每个项目单独生成公钥。多把公钥用于多账号或多设备场景。

1.3 当前问题表现

在使用 VS Code 或命令行执行 Git 操作时,开发者可能遇到以下问题:

  • git pullgit push 非常慢,甚至卡顿数分钟。

  • 频繁要求输入 Gitee 账号和密码。

  • 尝试使用 SSH 时,提示 Permission denied (publickey)

这些问题通常与使用 HTTPS 协议 或 SSH 公钥未正确配置有关。


二、检测与准备工作

2.1 检查当前远程仓库协议

在项目根目录打开终端,执行:

git remote -v

输出示例:

origin https://gitee.com/njust_365/info-manage.git (fetch)

origin https://gitee.com/njust_365/info-manage.git (push)

说明当前远程地址使用的是 HTTPS 协议,这是导致速度慢和频繁验证的根本原因。

2.2 检查本地 SSH 公钥

在 PowerShell 或命令行中执行:

ls ~/.ssh

确认存在:

  • 私钥:id_rsa

  • 公钥:id_rsa.pub

  • 配置文件:config

  • 已知主机文件:known_hosts

查看公钥内容:

cat ~/.ssh/id_rsa.pub

完整公钥从 开头 ssh-rsa结尾邮箱 都需要复制到 Gitee。

2.3 添加公钥到 Gitee

  1. 登录 Gitee → 个人设置 → SSH 公钥

  2. 点击 “添加公钥” → 填写标题(可随意)

  3. 粘贴完整公钥内容(ssh-rsa … 邮箱

  4. 保存

添加后,这把公钥对应的私钥即可访问你账号下的所有仓库。

2.4 配置 .ssh/config 文件(Windows 示例)

编辑文件 C:\Users\用户名\.ssh\config,在末尾添加:

# Gitee 配置
Host gitee.com
  HostName gitee.com
  User git
  IdentityFile C:/Users/lee/.ssh/id_rsa

说明:

  1. Host gitee.com:匹配远程仓库地址。

  2. User git:固定值。

  3. IdentityFile:本地私钥完整路径。

  4. 使用 / 或双反斜杠 \\,避免 Windows 路径识别问题。

当然,可以使用以下命令打开相应路径的文件

C:\Users\lee\.ssh\config


三、切换地址与验证

3.1 修改项目远程地址为 SSH

在项目根目录执行:

git remote set-url origin 你的SSH路径

路径在这里复制:

验证修改是否成功:

git remote -v

输出应为:

origin git@gitee.com:njust_365/info-manage.git (fetch)

origin git@gitee.com:njust_365/info-manage.git (push)

3.2 测试 SSH 连接

执行:

ssh -T git@gitee.com

第一次连接可能提示是否信任:

The authenticity of host 'gitee.com (IP地址)' can't be established.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

输入 yes 即可,SSH 会将 Gitee 主机加入 known_hosts 文件。

  • 成功输出:

Hi njust_365! You've successfully authenticated, but GITEE.COM does not provide shell access.

表示 SSH 配置正确,本地可以无密码访问 Gitee。

3.3 测试 Git 操作

重新执行测试:

git add . 添加本地
git commit -m "备注"  提交备注
git pull 拉取
git status 检查
git push 推送

  1. 使用 SSH 协议后,速度明显提升(几秒完成)

  2. 不再需要输入账号和密码

  3. 支持多仓库、多项目操作,保持稳定


四、注意事项与最佳实践

  1. 公钥管理:一把公钥可访问同一账号下所有仓库。多账号或多设备建议生成不同公钥,并在 .ssh/config 中区分 Host。

  2. 路径问题:Windows 下 SSH 配置推荐使用完整路径,如 C:/Users/lee/.ssh/id_rsa。另外,避免使用 ~\ 导致找不到私钥。

  3. 权限问题:私钥文件必须可读,公钥必须完整复制到 Gitee

  4. 首次 SSH 连接:出现 can't be established 提示,输入 yes 信任即可,之后不会再提示

  5. 调试:ssh -vT git@gitee.com 可显示详细日志,便于排查 Permission denied 问题


五、本文总结

  1. HTTPS 与 SSH 区别

    • HTTPS 需要账号验证,速度慢

    • SSH 使用公钥认证,无需密码,速度快且稳定

  2. SSH 公钥管理

    • 私钥保存在本地 .ssh/id_rsa

    • 公钥添加到 Gitee 账号

    • 多项目可共用同一把公钥

  3. 配置流程

    • 检查远程仓库协议

    • 确认本地公钥存在

    • 添加公钥到 Gitee

    • 配置 .ssh/config 指定私钥

    • 修改项目远程地址为 SSH

    • 测试 SSH 连接和 Git 操作

  4. 注意事项

    • 路径问题、权限问题、首次连接提示

    • 多账号场景需额外公钥管理

通过以上步骤,可以保证 VS Code 或命令行在 Gitee 上的 Git 操作 快速、稳定、安全,解决 HTTPS 协议导致的慢速问题,同时避免频繁输入账号密码,提高开发效率。

http://www.dtcms.com/a/482095.html

相关文章:

  • 【C++】使用MSBuild命令行编译ACE、TAO、DDS
  • 郑州市建设投资集团公司网站网站开发私活
  • ⽹络原理-HTTP/HTTPS
  • 58同城哈尔滨网站建设宁波网络公司网站建s
  • windows系统实操Flutter鸿蒙环境搭建
  • Epimedin-B 通过靶向 MCOLN1/TRPML1 通道阻断自噬流
  • HUD-汽车图标内容
  • 使用Vela编译器开发Ethos-U NPU流程导引
  • 西城区网站建设推广seo网站技术团队
  • 泛型学习——看透通配符?与PECS 法则
  • 跨平台音频IO处理库libsoundio实践
  • 详解云原生!!
  • 网站跟客户端推广怎么做 上软件免费下载
  • JVM - 内存泄露与内存溢出
  • iOS 26 性能测试实战,性能评估、帧率、资源瓶颈 + 多工具辅助测试
  • elasticsearch数据迁移
  • 可以横跨时间轴,分类显示的事件
  • 2.0 轴承的分类与套筒、甩油环作用
  • mvc 网站 只列出目录wordpress速度慢2018
  • 电子商务网站建设一体化教案代运营公司网站
  • 深度学习与大模型技术实战:从算法原理到应用部署
  • YOLO v3:目标检测领域的经典革新与实战指南
  • MATLAB基于GWO(灰狼优化算法)优化LSTM神经网络的分类模型实现。主要功能是通过智能算法自动寻找LSTM的最佳超参数,构建分类模型并对数据进行分类预测
  • 网站的制医院网站建设台账
  • 用python操作mysql之pymysql库基本操作
  • 数据结构 05 栈和队列
  • 01、大模型部署方案与Dify的使用
  • 使用Spring Boot构建消息通信层
  • 山东济南seo整站优化公司对其网站建设进行了考察调研
  • MIPI_CSI22_Xilinx IP