You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bitbucket外部用户遇2GB推送限制,如何仅提交推送自身变更?

解决Bitbucket推送因大备份目录触发容量限制的问题

作为经常和仓库容量限制打交道的开发者,我太懂你这个糟心的处境了——那个占空间的/_old_project备份目录,明明和你的工作无关,却偏偏卡住了推送流程。既然你是外部用户没法改动远程仓库的结构,咱们完全可以从本地仓库入手,只跟踪和推送你实际修改的内容,彻底绕开这个大目录。

下面是两种实用的解决方案,你可以根据自己的情况选择:

方法一:用Git Sparse Checkout只拉取必要内容(推荐)

这个方法能让你克隆仓库时只下载需要修改的目录,直接跳过那个大备份目录,从根源上避免容量问题。

如果还没克隆仓库:

# 以稀疏模式克隆仓库,先只下载元数据不占用大量空间
git clone --filter=blob:none --sparse <你的Bitbucket仓库URL>
cd <仓库名称>
# 设置只保留你需要工作的目录(比如src/、docs/,替换成你的实际工作路径)
git sparse-checkout set /src /docs

执行完后,你的本地工作区只会有指定的目录,/_old_project根本不会被拉下来,后续推送自然不会触发容量警告。

如果已经克隆了仓库:

cd <仓库名称>
# 初始化稀疏检查模式
git sparse-checkout init --cone
# 设置只保留你需要的目录,自动移除对/_old_project的跟踪
git sparse-checkout set /src /docs

执行后,/_old_project会从你的本地工作区自动移除,Git也不会再跟踪它。接下来你正常修改文件、提交、推送即可。

方法二:本地临时忽略大目录(不改动仓库.gitignore)

如果你不想重新克隆仓库,可以在本地临时屏蔽这个大目录,但注意不要把.gitignore的修改提交到远程:

# 把/_old_project加入本地.gitignore
echo "/_old_project" >> .gitignore
# 让Git忽略对.gitignore的修改,避免误提交到远程
git update-index --assume-unchanged .gitignore

这个方法会让Git不再跟踪/_old_project的任何变化,但本地工作区还是会保留这个目录(只是不参与版本控制)。如果仓库总容量已经触发Bitbucket的限制,这个方法可能治标不治本——但如果只是推送时的临时阻碍,它能快速解决问题。

最后提个小提醒:创建分支时确保基于远程主分支,提交时只包含你自己的修改,这样PR里只会有你的变更,评审合并时也不会涉及那个大备份目录。

内容的提问来源于stack exchange,提问作者moso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:08:15