离线使用 Git
Git 的分布式设计支持完全离线和空气隔离的工作流:既可以把本地文件夹、USB 盘和局域网共享当作远程仓库,也可以通过 `git bundle` 或邮件补丁来传递更改,而不依赖 GitHub 或其他托管 forge。评论者将此与当今大多中心化的 pull request 文化进行对比,讨论便利性、“单一事实来源”和真正去中心化协作模型(如邮件列表或联邦式 forge)之间的取舍。他们还强调了更广泛的用途——备份配置、手稿和游戏服务器——并提到 `git-annex` 和 Fossil 等替代方案,适用于大文件或单文件仓库的便携性需求。
离线使用 Git 与本地远程仓库
- 许多人完全离线使用 Git,用于私密笔记、配置文件,或在空气隔离环境中使用。
- 远程仓库可以只是简单的文件路径:USB 闪存盘、本地文件夹、网络共享、NAS,或通过 SSH 连接的另一台机器。
- 局域网机器上的裸仓库可作为备份和同步枢纽;多个远程仓库(GitHub、局域网、USB 等)可以并存。
- 本地克隆可能通过硬链接共享存储,因此多个克隆并不一定会重复存储 blob 数据。
git bundle和基于补丁的工作流(format-patch、am、send-email)被强调为在没有实时连接时传递更改的工具。
分布式与中心化的使用方式
- 许多人把 Git 当作“远程存储”(像 SCP 一样)来用,而忽略了它的分布式特性。
- 人类会自然地倾向于把某个单一位置视为“事实来源”(例如 GitHub 的 main 分支),尽管原则上每个克隆体都是等价的。
- 有人认为真正的分布式只意味着任何对等节点都可以成为集成点;也有人坚持,最终你仍然至少需要一个权威的发布分支。
- 关于 PR 的争论:从功能上看是去中心化的(每个人都有一个 fork),但从运维上看是中心化的,因为 PR 和账号都存在于同一个 forge 上,通常是 GitHub。
基于邮件/补丁的协作
- 几条评论强调了 Git 最初的邮件/补丁工作流:贡献者通过邮件列表发送补丁;维护者应用补丁,并沿着层级向上转发。
- 这样做的优点包括:天然去中心化、不需要在多个 forge 上注册账号,以及通过邮件基础设施来稳健地分发“PR”。
- 批评意见包括:更难追踪哪些补丁已被应用,冗长的邮件线程可能像笨重的 PR,而且很多人出于便利更喜欢中心化的 Web 工具。
更广泛的用途、工具与替代方案
- Git 被描述为基础性工具,并且不仅适用于代码:简历、小说、游戏服务器、系统配置等。
- 有人提问并建议用 Git 做文件同步;也指出了其在大文件上的局限,并提到了
git-annex和 git‑LFS。 - Fossil 等替代方案因其离线和一体化工作流而受到称赞(单个 SQLite 仓库、内置 Web UI、问题跟踪、wiki)。
- 有人怀念完全基于 SSH 的去中心化方案,而这与当今对托管平台(GitHub、GitLab、Bitbucket)的偏好形成对比。