关于 Git 同步是免费的错觉

论坛里看过很多 Git 同步的帖子。去调研了一圈,常见的托管平台对免费账户仓库大小都有限制,平均最多 5G 左右。

所以想问下大家。因为各大网盘是付费服务,潜意识一直有种与之对比的 Git 是免费的错觉。但不应该用这种逻辑思考,而是任何涉及在线存储的服务,都存在一定的支出对吗?或者是购买 Nas 进行搭建、或者是充值各类会员等等。


我自己现在是本地 Git 备份。

第一种是传统做法,在本地其他目录新建一个裸仓库作远程仓库定期推送 push。这种做法用来同步 .obsidian 文件夹是可以的。但用来同步笔记仓库时,报错 unpacker error。不清楚是不是受到了大小的限制。

第二种,.git 文件夹放在本地其他目录,通过 mklink 软链接到笔记仓库目录下。可能只适用 Windows 系统?

使用第二种方式免去推送,所以只写了一个定期检查更新自动提交 commit 的脚本。历史记录使用 VSCode 的 GitLens 扩展社区版,侧边栏 - GitLens Inspect - File History 进行查看,代替掉核心插件文件恢复。

目前功能已足够,故没有继续测试 obsidian-git 插件。

软链接的话,linux 不是也有么, macos 不清楚

1 个赞

可能是这些帖子都默认了 “使用git的用户主要用于文本的同步” 这个前提,所以大多就使用免费的几个G托管平台了

1 个赞

我没听懂你想问大家什么。

1 个赞

git是软件,是免费的。
git push、git pull 这两个命令也是免费的。
如果你指的是github这类的平台,先搞懂这类平台是提供什么服务,而不是被用于白嫖当网盘。

1 个赞

想问大家什么

硬要说的话,是想问这句:

但不应该用这种逻辑思考,而是任何涉及在线存储的服务,都存在一定的支出对吗?

Github 当然有限制:

单个文件大小超过 50MB 会收到预警,超过 100 MB 会阻止上传。单个仓库大小超过 1GB 会收到预警,超过 5GB 会受到限制。另外,可能存在未知的审查风险,与此同时,本地的 .git 目录里面会保存所有上传、修改的历史,可能会反过来超过文件目录的总大小。

至于上传次数目前没有查到有什么限制。

反过来说,如果不在意这些,Github 就很适合拿来保存二进制文件,如果在意的话,可能还是上 Nas 这类储存库比较好。

2 个赞

分享一下我以前存的, 有些数据可能过期了 (于 2024-12-10 再查了一遍)


其中 Azure DevOps 那个 “一次推送限制为 5 GB” 实测确实如此, 比如本地有十个新 commit, 其增加文件总量超过 5gb, 此时就真的 push 不上去 (似乎 github 也有类似限制, 且单次允许 push 上限更小些)

在 commit 历史已成事实的前提下, 其中一个解决方案可以是, 从本地历史 commit 序列中, 找几个关键节点做成新分支, 手动分批 push, 保证每次都别超过 5gb


当然最好是提前避开这类问题, 干脆就不用 git repo 去保管巨大文件

我自己仓库也挺大的, 但我发现某些巨大 pdf 其实可以不走 git 这条路 (对于网络常见且不会改动的大文件, 直接给放 .gitignore 里, 真丢了从网上再下载)

对于需频繁改动的巨大二进制文件, git 确实不太合适管理

1 个赞

是的,Git 用来同步二进制文件打包压缩可慢了。所以像教材呀、还有能拿出去的音视频文件,最好都不要放在库里面。

PDF 文件我目前放的比较分散,通过添加文件链接到 Zotero 中进行管理,使用 Zotero 内置工具或者 BookXNote 软件添加笔记,保证笔记和 PDF 分离,原文件不做改动。如果遇到路径变动,就用 SQLiteStudio 打开 zotero.sqlite 批量更改。

1 个赞

Git 本身是免费的,限制存储空间的是各个托管平台,标题就很有歧义。

对于音视频、PDF这种大文件不适合推送存储到 github 上,保存在网盘或者其他容器内更为合适。

如果从这种抽象的角度去思考的话,其实就算是本地存储,也都一定是存在着支出的。

啊哈哈,这倒是。可能因为电脑、手机、硬盘等,购买它们通常出于日常必需,只是现在有了新需求,可以“挪用”做同步,今后不用来同步也能回收成本,并且是已经花费的、一次性付清的。所以倾向于把它们归类为原始资产,而不是增值服务了。

我尝试思考、暂时总结了“在线存储”这一条,也确实不单是折腾了几天同步后的临时起意。如你所说,它是抽象的,你可以想象成我在搜集意见、判断自己的金钱观或价值观。

现在网上提供了很多方便技术小白的服务,如自动上传、收付款、轻建站等。这些服务使用的技术可能的确不产生开销。但是,技术也是为着一个完整的需求服务的。这些完整需求的链条上,可能包括在线存储。在线存储会产生成本,因此即使宣传免费,最终仍可能通过其他方式产生费用。

无论使用哪种服务,数据都是最宝贵的。我想如果有一个基准,只要确认某项服务涉及在线存储,就应该做好心理准备,意识到这可能会产生成本。面对层出不穷的新鲜的、新奇的各种服务,不要再像缺乏知识一样缺乏预见性,不要盲目消费、轻易交出数据,也能节省一定的时间精力。就算技术上依然是个小白,也要努力做一个成熟的用户。

git 同步方案,适用于文本同步,不适用于同步图片等其他文件,图片同步用图床,纯文本达不到几个G。

本质上就是将文件放到网盘上。存储,更新,删除的行为都是由插件进行的。所以网盘提供商并没有在你的OB项目上提供额外的服务。只要有可有的网盘,理论上都可以利用其进行OB同步(毕竟就是把新文件放上去,另一台设备复制下来而已,插件都帮你做了)。除非.ob文件超过5GB那么大多数网盘同步确实是“免费的”。


通过提供一定的免费空间与有限服务,让你形成使用习惯,再通过你放大的需求从中获利。确实不是**“免费”**的。但相反来看,只要你要存在上面的东西不超过它免费提供的空间,它就永远是免费的。
简单的营销常识。