关于 Git 同步是免费的错觉

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

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


我自己现在是本地 Git 备份。有三四个库,均为 9-10G 之间。

第一种是传统做法,在本地其他目录新建一个裸仓库作远程仓库定期推送 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 这类储存库比较好。

1 个赞

分享一下我以前存的, 有些数据可能过期了 (于 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 上,保存在网盘或者其他容器内更为合适。

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

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

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

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

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