Obsidian 分布式 Git 同步配置指南
本指南面向采用 Obsidian + Git 的多节点工作流,目标是为“输入、处理、输出”三位一体的分布式笔记系统提供一套更稳妥、低干扰、可长期维护的同步配置。
本页推荐采用“温和同步策略”:以固定周期同步为基础,以“停止编辑后再同步”为主触发条件,在保证版本统一的同时尽量减少对创作流的打断。
这份配置解决什么问题
- 多台设备之间的版本水位不一致
- 编辑过程中频繁同步带来的卡顿感
- 冲突出现后难以定位是哪台设备改了什么
- Obsidian 本地配置文件误同步导致界面异常
推荐策略总览
| 配置目标 | 推荐做法 | 作用 |
|---|---|---|
| 同步频率 | 5 分钟 | 在时效性与稳定性之间取平衡 |
| 触发方式 | 停止编辑后自动同步 | 降低持续输入时的干扰 |
| 拉取策略 | 启动时拉取 + 定时拉取 | 保持各节点持续对齐 |
| 冲突处理 | 保持 Git 默认冲突处理 | 避免插件擅自覆盖内容 |
| 身份识别 | 用 hostname + date 生成提交信息 | 方便回溯来源 |
推荐配置步骤
配置自动同步节奏
先把自动提交、自动拉取、停止编辑后同步这三项配置好,确保系统具备基础的同步闭环。
配置提交信息与节点身份
再统一 commit message 格式,让你能快速看出改动来自哪一台机器、发生在什么时间。
配置拉取与合并策略
最后确认启动拉取、合并策略、冲突处理方式,避免不同节点出现长时间分叉。
一、核心同步逻辑
这是整个 Obsidian Git 同步方案的核心部分。
Automatic 配置
-
Auto commit-and-sync interval (minutes):
5
设定基础同步周期。5分钟通常是网络波动、同步频率与数据新鲜度之间较均衡的取值。 -
Auto commit-and-sync after stopping file edits:
ON
这是最关键的设置之一。同步只在你停止编辑后触发,能有效减少持续输入时后台 Git 操作带来的轻微卡顿。 -
Auto pull interval (minutes):
5
这一项应与自动 commit 周期保持一致,而且不要设为0。即使本地当前没有新改动,也要持续检查远端更新,才能形成完整的多端同步闭环。 -
Auto commit-and-sync after latest commit:
OFF
在这套策略里,主要由“停止编辑后触发”来控制节奏,因此不建议再开启这类额外触发。 -
Auto commit-and-sync only staged files:
OFF
保持关闭,让所有改动自动进入同步流程,避免依赖手动 staged。
如果你希望 Obsidian Git 成为“安静的后台服务”,最重要的不是一味提高同步频率,而是把触发条件放在“停笔之后”。
二、节点识别与提交信息
在分布式工作流里,最怕的是日志里看不出“谁在什么时候改了什么”。所以 commit message 要尽量可回溯。
Commit Message 推荐值
-
Commit message on auto commit-and-sync:
\{\{hostname\}\} sync: \{\{date\}\}
用主机名标记改动来源,用时间标记同步发生时点。 -
{{hostname}} placeholder replacement:
[填写节点角色]
推荐根据节点职责命名,而不是直接使用混乱的设备名。 -
{{date}} placeholder format:
YYYY-MM-DD HH:mm:ss
时间格式越标准,越方便后续排查同步顺序与冲突来源。 -
Specify custom commit message…:
OFF
保持关闭,避免每次自动同步都弹出干预式输入框。 -
List filenames affected…:
OFF
保持 Git 日志简洁,减少噪音。
节点命名示例
- 输入端:
Input-Node - 处理端:
Process-Node - 输出端:
Output-Node
这类命名方式的优点是:即使设备本身更换,只要节点职责不变,日志语义仍然稳定。
三、数据对齐与冲突防御
Pull / Sync 配置
-
Pull on startup:
ON
这是整个同步体系的基石。Obsidian 一启动就先拉取远端内容,能最大程度减少设备之间的版本断层。 -
Merge strategy:
Merge
使用合并策略,保留不同节点的历史演进,而不是简单覆盖。 -
Merge strategy on conflicts:
None (git default)
如果出现物理冲突,不建议交给插件擅自处理。保留 Git 默认行为更安全,能避免误覆盖。 -
Push / Pull on commit-and-sync:
ON
保证一次同步里包含完整的pull -> merge -> push闭环。
如果你的目标是“多端一致”,那“启动先拉取”比“频繁推送”更重要,因为它能先消除本地视角落后于远端的问题。
四、交互与视觉规范
UI / Miscellaneous 配置
-
Disable informative notifications:
ON
成功通知关闭,让 Git 退到幕后。 -
Disable error notifications:
OFF
失败通知保留。只有同步出问题时才提醒,既安静又安全。 -
Show status bar:
ON
通过状态栏观察改动数量与同步状态,形成低干扰感知。 -
Signs (Hunk management):
ON
编辑器左侧显示改动标记,方便识别哪些内容是最近同步过来的。
五、作者身份统一
为了让版本库在 GitHub、Gitee 等平台上显示为同一作者,建议所有节点统一提交身份。
- Author name for commit:
[你的统一 ID],例如WILL - Author email for commit:
[你的统一邮箱]
一份可直接照抄的建议配置
Auto commit-and-sync interval (minutes): 5
Auto commit-and-sync after stopping file edits: ON
Auto pull interval (minutes): 5
Auto commit-and-sync after latest commit: OFF
Auto commit-and-sync only staged files: OFF
Commit message on auto commit-and-sync: \{\{hostname\}\} sync: \{\{date\}\}
\{\{hostname\}\} placeholder replacement: [节点角色]
\{\{date\}\} placeholder format: YYYY-MM-DD HH:mm:ss
Specify custom commit message...: OFF
List filenames affected...: OFF
Pull on startup: ON
Merge strategy: Merge
Merge strategy on conflicts: None (git default)
Push / Pull on commit-and-sync: ON
Disable informative notifications: ON
Disable error notifications: OFF
Show status bar: ON
Signs (Hunk management): ON
Author name for commit: [统一 ID]
Author email for commit: [统一邮箱]附录:建议的 .gitignore
即使配置了 Obsidian Git,同步范围也不应该无限放大。一些强依赖本地设备状态的文件应当排除,否则容易引发布局错乱或无意义冲突。
# 忽略 Obsidian 窗口布局(不同设备分辨率通常不同)
.obsidian/workspace.json
# 忽略缓存和临时文件
.DS_Store
.obsidian/workspace
.obsidian/backups/.obsidian 目录并不是所有内容都该忽略。这里建议忽略的是强本地化、容易冲突、对内容本身没有价值的文件,而不是把整个配置目录一刀切排除。
总结
这套 Obsidian Git 同步配置的核心不是“同步越快越好”,而是:
- 用固定周期维持基本对齐
- 用停笔触发降低创作干扰
- 用启动拉取减少版本断层
- 用清晰的 commit message 提高可追溯性
- 用
.gitignore控制不该同步的本地状态文件
如果你的目标是构建稳定的分布式 Obsidian 工作流,这是一套适合长期使用的默认起点。