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

Git 实战:将 270MB 项目成功推送到 Gitee 遇到的坑

目录Git 实战将 270MB 项目成功推送到 Gitee 遇到的坑问题背景一、初始化 Git 仓库1. 创建仓库2. 配置用户信息3. 创建 .gitignore4. 添加并提交二、连接远程仓库1. 添加 Gitee 远程仓库2. 验证远程仓库三、首次推送失败1. 尝试推送2. 错误信息3. 问题分析四、排查大文件1. 检查仓库大小2. 找出占用空间最大的文件3. 发现的大文件五、清理大文件1. 更新 .gitignore2. 从 Git 暂存区移除3. 提交更改六、重写 Git 历史1. 使用 filter-branch 重写历史2. 清理引用日志3. 垃圾回收4. 验证清理效果七、增加 Git 缓冲区八、处理远程仓库冲突1. 拉取远程更改2. 解决冲突3. 提交合并九、成功推送1. 强制推送2. 推送结果十、完整命令清单十一、经验总结推送失败的常见原因不应该提交的文件Git 最佳实践问题背景在将 Hermes AI 框架项目推送到 Gitee 时遇到了推送失败的问题error: RPC failed; curl 55 Send failure: Connection was reset fatal: the remote end hung up unexpectedly项目初始大小达到270MB导致推送频繁中断。本文记录了从问题排查到成功推送的完整过程。一、初始化 Git 仓库1. 创建仓库git init2. 配置用户信息git config --global user.name Your Name git config --global user.email your-emailexample.com3. 创建 .gitignore# Dependencies node_modules/ */node_modules/ # Build outputs dist/ */dist/ dist-electron/ */dist-electron/ # IDE .vscode/ .idea/ # OS .DS_Store Thumbs.db # Logs *.log npm-debug.log* # Environment .env .env.local4. 添加并提交git add . git commit -m Initial commit: Hermes AI assistant project二、连接远程仓库1. 添加 Gitee 远程仓库git remote add origin https://gitee.com/your-username/repository.git2. 验证远程仓库git remote -v输出origin https://gitee.com/your-username/repository.git (fetch) origin https://gitee.com/your-username/repository.git (push)三、首次推送失败1. 尝试推送git push -u origin master2. 错误信息Enumerating objects: 6623, done. Counting objects: 100% (6623/6623), done. Delta compression using up to 12 threads Compressing objects: 100% (6605/6605), done. error: RPC failed; curl 55 Send failure: Connection was reset send-pack: unexpected disconnect while reading sideband packet fatal: the remote end hung up unexpectedly3. 问题分析推送失败的原因仓库过大270MB网络连接不稳定Git 默认缓冲区大小限制四、排查大文件1. 检查仓库大小git count-objects -vH输出count: 6626 size: 294.95 MiB in-pack: 0 packs: 0 size-pack: 0 bytes2. 找出占用空间最大的文件git ls-tree -r -l HEAD | ForEach-Object { $parts $_ -split \s if ($parts[3] -match ^\d$ -and [int]$parts[3] -gt 5000000) { $([math]::Round([int]$parts[3]/1MB, 2)) MB - $($parts[4]) } } | Sort-Object -Descending | Select-Object -First 303. 发现的大文件文件大小类型hermes-web/release/win-unpacked/智能助手.exe172MBElectron 打包产物.npm-cache/_cacache/content-v2/...43MBnpm 缓存.npm-cache/_cacache/content-v2/...37MBnpm 缓存hermes-web/release/win-unpacked/icudtl.dat9.98MBElectron 资源hermes-web/release/win-unpacked/LICENSES.chromium.html9.01MBElectron 资源hermes-web/release/win-unpacked/resources/app.asar9MBElectron 资源hermes-web/release/win-unpacked/libGLESv2.dll7.69MBElectron 资源结论release/和.npm-cache/目录占用了绝大部分空间这些文件不应该提交到 Git。五、清理大文件1. 更新 .gitignore# Build outputs dist/ */dist/ dist-electron/ */dist-electron/ release/ */release/ # npm cache .npm-cache/ */.npm-cache/2. 从 Git 暂存区移除git rm -r --cached hermes-web/release/ .npm-cache/3. 提交更改git commit -m Remove large files: release/ and .npm-cache/六、重写 Git 历史由于大文件已经在 Git 历史中需要彻底清理1. 使用 filter-branch 重写历史git filter-branch --force --index-filter \ git rm -r --cached --ignore-unmatch hermes-web/release .npm-cache \ --prune-empty -- --all这个过程会遍历所有提交从历史中移除指定文件。2. 清理引用日志git reflog expire --expirenow --all3. 垃圾回收git gc --prunenow --aggressive4. 验证清理效果git count-objects -vH七、增加 Git 缓冲区git config --global http.postBuffer 524288000将缓冲区设置为 500MB避免大文件推送时连接中断。八、处理远程仓库冲突1. 拉取远程更改远程仓库创建时包含了 README.md与本地提交产生冲突git pull origin master --allow-unrelated-histories2. 解决冲突编辑README.md删除冲突标记保留正确内容 HEAD # 本地内容 # 远程内容 origin/master3. 提交合并git add README.md git commit -m Merge: resolve README.md conflict九、成功推送1. 强制推送git push -u origin master --force2. 推送结果Enumerating objects: 213, done. Counting objects: 100% (213/213), done. Delta compression using up to 12 threads Compressing objects: 100% (163/163), done. Writing objects: 100% (211/211), 640.75 KiB | 49.29 MiB/s, done. Total 211 (delta 46), reused 207 (delta 45), pack-reused 0 (from 0) remote: Resolving deltas: 100% (46/46), done. To https://gitee.com/your-username/repository.git b3a4152..f2bdd08 master - master branch master set up to track origin/master.从 270MB 优化到 640KB推送成功十、完整命令清单# 1. 初始化仓库 git init # 2. 配置用户信息 git config --global user.name Your Name git config --global user.email your-emailexample.com # 3. 添加并提交 git add . git commit -m Initial commit # 4. 连接远程仓库 git remote add origin https://gitee.com/your-username/repository.git # 5. 处理冲突如有 git pull origin master --allow-unrelated-histories # 解决冲突后 git add . git commit -m Merge conflict resolved # 6. 清理大文件 git rm -r --cached release/ .npm-cache/ git commit -m Remove large files # 7. 重写历史 git filter-branch --force --index-filter \ git rm -r --cached --ignore-unmatch release .npm-cache \ --prune-empty -- --all # 8. 清理和压缩 git reflog expire --expirenow --all git gc --prunenow --aggressive # 9. 增加缓冲区 git config --global http.postBuffer 524288000 # 10. 强制推送 git push -u origin master --force十一、经验总结推送失败的常见原因原因解决方案仓库过大清理大文件重写历史缓冲区不足增加http.postBuffer网络不稳定重试或使用 SSH远程有内容git pull --allow-unrelated-histories不应该提交的文件❌node_modules/- 依赖目录❌dist/- 构建产物❌release/- 打包输出❌.npm-cache/- 包管理器缓存❌.env- 环境变量❌*.log- 日志文件Git 最佳实践✅ 初始化前先配置.gitignore✅ 提交前检查git status✅ 大文件使用 Git LFS✅ 定期清理 Git 历史✅ 使用 SSH 代替 HTTPS更稳定

相关文章:

Git 实战:将 270MB 项目成功推送到 Gitee 遇到的坑

目录 Git 实战:将 270MB 项目成功推送到 Gitee 遇到的坑 问题背景 一、初始化 Git 仓库 1. 创建仓库 2. 配置用户信息 3. 创建 .gitignore 4. 添加并提交 二、连接远程仓库 1. 添加 Gitee 远程仓库 2. 验证远程仓库 三、首次推送失败 1. 尝试推送 2. 错…...

别再被‘Refused to execute script’卡住了!手把手教你用Nginx/Apache配置搞定MIME类型错误

彻底解决前端部署中的MIME类型错误:Nginx与Apache实战指南 当你满怀期待地将精心开发的前端应用部署到服务器,却在浏览器控制台看到刺眼的"Refused to execute script"错误时,那种挫败感我深有体会。这个看似简单的MIME类型问题&am…...

S32K3开发第一步:如何为S32DS 3.5安装正确的开发包(Product Updates Packages)

S32K3开发环境搭建:从零构建标准化开发环境的完整指南 当你第一次打开S32 Design Studio 3.5,准备开始S32K3系列MCU开发时,可能会遇到一个令人困惑的场景——创建新工程时找不到目标芯片型号。这不是你的操作失误,而是大多数开发…...

UI-TARS桌面版:零代码AI自动化助手,用自然语言控制你的电脑

UI-TARS桌面版:零代码AI自动化助手,用自然语言控制你的电脑 【免费下载链接】UI-TARS-desktop The Open-Source Multimodal AI Agent Stack: Connecting Cutting-Edge AI Models and Agent Infra 项目地址: https://gitcode.com/GitHub_Trending/ui/UI…...

基于现代Web技术栈的静态网站生成器:ara.so项目实战指南

1. 项目概述与核心价值最近在折腾一些个人项目,需要快速搭建一个轻量级的静态网站,用来展示一些技术文档和项目成果。我既不想用那些过于笨重的CMS系统,也不想花太多时间去配置复杂的服务器环境。就在这个节骨眼上,我发现了adisin…...

保姆级教程:在Ubuntu 20.04上搞定速腾RS-Helios-16P雷达驱动与Cartographer建图(避坑指南)

速腾RS-Helios-16P雷达与Cartographer全流程实战指南 第一次接触激光雷达建图时,看着官方文档里密密麻麻的参数和报错信息,我盯着屏幕发呆了半小时——这感觉就像拿到一台新相机却连电池盖都打不开。速腾RS-Helios-16P作为国产雷达中的性能担当&#xff…...

PyQtGraph避坑指南:从安装到OpenGL加速,解决Windows/macOS上的常见报错

PyQtGraph实战避坑指南:从环境配置到OpenGL加速全解析 刚接触PyQtGraph的开发者常会陷入这样的困境——明明按照官方文档操作,却频频遭遇环境报错、黑屏卡顿或性能瓶颈。这些问题往往与Qt绑定版本冲突、Python环境隔离不足、显卡驱动兼容性等底层因素相关…...

开源AI Agent编排平台Mission Control:从架构解析到实战部署

1. 项目概述:Mission Control,一个开源的AI Agent编排仪表盘如果你正在寻找一个能让你像指挥一支AI特工小队一样,管理复杂任务的工具,那么Mission Control可能就是你一直在等的那个“指挥中心”。这是一个基于Next.js构建的、功能…...

D2RML:暗黑破坏神2重制版多开终极指南,告别繁琐登录提升300%效率

D2RML:暗黑破坏神2重制版多开终极指南,告别繁琐登录提升300%效率 【免费下载链接】D2RML Diablo 2 Resurrected Multilauncher 项目地址: https://gitcode.com/gh_mirrors/d2/D2RML 还在为频繁切换暗黑破坏神2重制版账户而烦恼吗?每次…...

告别虚拟机!用Docker Compose一键部署MobSF移动安全测试环境(附动态分析替代方案)

告别虚拟机!用Docker Compose一键部署MobSF移动安全测试环境(附动态分析替代方案) 在移动应用安全测试领域,快速搭建可靠且可复用的测试环境一直是开发者和安全工程师的痛点。传统虚拟机部署方式不仅占用大量系统资源,…...

Nim语言构建智能抓取技能:高性能爬虫引擎的设计与实现

1. 项目概述:一个Nim语言编写的“智能抓取”技能最近在开源社区里,我注意到一个挺有意思的项目,叫d-wwei/openclaw-nim-skill。光看这个名字,就能拆解出几个关键信息点:openclaw暗示了“开放之爪”,指向某种…...

MAA助手终极指南:彻底解放双手的明日方舟全自动游戏解决方案

MAA助手终极指南:彻底解放双手的明日方舟全自动游戏解决方案 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https…...

深入拆解:FPGA处理IMX327 RAW12数据的完整ISP流水线(白平衡/色彩校正/伽马调校全都有)

FPGA图像处理引擎:从IMX327 RAW12到高质量输出的ISP全流程实战 在实时图像处理领域,FPGA凭借其并行计算能力和低延迟特性,成为构建高效ISP(Image Signal Processing)流水线的理想平台。本文将深入探讨如何基于Xilinx K…...

体验 Taotoken 官方价折扣后模型调用的成本优化效果

体验 Taotoken 官方价折扣后模型调用的成本优化效果 1. 成本优化背景与观察方法 对于个人开发者或中小团队而言,大模型 API 的调用成本是技术选型时的重要考量因素。Taotoken 平台通过聚合多家模型供应商并提供统一接入点,在保持 OpenAI 兼容 API 的同…...

3个关键步骤解决在线视频保存难题:VideoDownloadHelper完全指南

3个关键步骤解决在线视频保存难题:VideoDownloadHelper完全指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 还在为无法保存心…...

别只pip install了!深入理解sentence_transformers在PyG MovieLens示例中的角色与替代方案

别只pip install了!深入理解sentence_transformers在PyG MovieLens示例中的角色与替代方案 当你第一次在PyTorch Geometric(PyG)中尝试加载MovieLens数据集时,那个突如其来的ModuleNotFoundError可能让你措手不及。大多数人会本能…...

高效配置漫画转换工具:5个实用技巧打造完美电子墨水屏阅读体验

高效配置漫画转换工具:5个实用技巧打造完美电子墨水屏阅读体验 【免费下载链接】kcc KCC (a.k.a. Kindle Comic Converter) is a comic and manga converter for ebook readers. 项目地址: https://gitcode.com/gh_mirrors/kc/kcc 还在为电子阅读器上看漫画效…...

PHP魔术方法实战避坑:用MRCTF2020 Ezpop案例讲清楚__invoke和__get的冷门用法

PHP魔术方法高阶实战:从MRCTF2020 Ezpop看__invoke与__get的攻防艺术 在CTF竞赛和实际安全审计中,PHP魔术方法常常成为代码执行的"暗门"。大多数开发者熟悉__construct、__destruct等常见魔术方法,但对__invoke和__get这类相对冷门…...

别再只会用DAQ助手了!手把手教你用LabVIEW DAQmx函数搭建高性能数据采集系统

突破图形化限制:用LabVIEW DAQmx函数构建工业级数据采集系统 在工业自动化与测试测量领域,数据采集系统的性能往往直接决定整个项目的成败。许多工程师初识LabVIEW时,都会从直观的DAQ助手(DAQ Assistant)开始&#xff…...

5个关键技巧掌握Arduino CLI:从零开始构建你的硬件开发工作流

5个关键技巧掌握Arduino CLI:从零开始构建你的硬件开发工作流 【免费下载链接】arduino-cli Arduino command line tool 项目地址: https://gitcode.com/gh_mirrors/ar/arduino-cli 你是否曾经想过,如果Arduino开发能像Linux命令行一样高效流畅会…...

高可用系统设计:从原理到实践

1. 高可用性系统设计基础 高可用性(High Availability, HA)系统设计的核心目标是确保关键业务服务能够持续稳定运行,即使在硬件故障、软件错误或人为操作失误等异常情况下也能保持服务不中断。在电信、金融交易、工业控制等关键领域&#xff…...

5个核心功能:掌握GoldHEN作弊管理器,彻底改变你的PS4游戏体验

5个核心功能:掌握GoldHEN作弊管理器,彻底改变你的PS4游戏体验 【免费下载链接】GoldHEN_Cheat_Manager GoldHEN Cheats Manager 项目地址: https://gitcode.com/gh_mirrors/go/GoldHEN_Cheat_Manager 还在为PS4游戏的高难度而困扰吗?想…...

Path of Building:5个技巧让你成为流放之路Build规划大师

Path of Building:5个技巧让你成为流放之路Build规划大师 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding Path of Building(简称PoB)是…...

【VS Code 零基础配置指南】C/C++ 开发环境从安装到调试全流程:单文件 / 多文件 / CMake 全覆盖

目录 一、写在前面:VS Code 为什么是 C/C 开发的首选轻量工具? 二、前置准备:安装 VS Code 与 C/C 编译器 2.1 安装 VS Code 2.2 安装 C/C 编译器(分操作系统) Windows 系统:安装 MinGW-w64&#xff08…...

5分钟快速上手:通达信缠论可视化插件ChanlunX完整指南

5分钟快速上手:通达信缠论可视化插件ChanlunX完整指南 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 你是否曾为复杂的缠论分析而头疼?面对K线图中的顶底分型、笔段划分、中枢构建…...

TIDAL无损音乐下载神器:tidal-dl-ng让你的音乐收藏永久化

TIDAL无损音乐下载神器:tidal-dl-ng让你的音乐收藏永久化 【免费下载链接】tidal-dl-ng TIDAL Media Downloader Next Generation! Up to HiRes / TIDAL MAX 24-bit, 192 kHz. 项目地址: https://gitcode.com/gh_mirrors/ti/tidal-dl-ng 你是否曾为流媒体音乐…...

从收音机到5G:混频器这个“老古董”是如何在无线通信里持续“打杂”的?

从收音机到5G:混频器这个“老古董”是如何在无线通信里持续“打杂”的? 想象一下,你正用手机刷着短视频,Wi-Fi信号满格,画面流畅得就像在本地播放一样。这背后,有一个默默工作了近百年的“老工人”在持续贡…...

避坑指南:VASPKIT 200功能计算AIMD力学性质时,INPUT.in参数怎么设?以面心立方Al为例

VASPKIT 200功能实战:AIMD计算面心立方铝力学性质的全流程解析与参数优化 在材料计算领域,结合AIMD(从头算分子动力学)与VASPKIT工具链进行含温力学性质分析,已成为研究材料在真实温度下力学行为的重要手段。本文将以面…...

Allegro焊盘设置保姆级指南:Regular Pad、Thermal Relief、Anti-Pad到底怎么用?

Allegro焊盘设计完全手册:从参数解析到实战避坑指南 第一次打开Allegro的Pad Designer工具时,面对密密麻麻的参数选项,大多数工程师都会陷入短暂的迷茫——Regular Pad、Thermal Relief、Anti-Pad这些看似简单的选项,在实际设计中…...

30秒找回QQ号:手机号查询工具的三大核心优势

30秒找回QQ号:手机号查询工具的三大核心优势 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾因忘记QQ账号而无法登录?或者需要验证某个手机号绑定的QQ账号?phone2qq工具为你提供了一个快速…...