当使用 Git 与 Obsidian 结合时,用户可以实现版本控制和多设备同步。我自己也是利用 Git 方案实现的同步。
在这一过程中可能会遇到一些冲突,尤其是当多个设备上的更改需要合并时。这些冲突常见于 .obsidian 目录、笔记的元数据更改、或是特定于设备的配置文件。
文件冲突可能会表现为——
- 同步冲突:当多个设备对同一文件进行更改并尝试同步时,可能会发生冲突。
- 配置差异:不同设备上的 Obsidian 插件和设置可能会导致 .obsidian 目录下的文件差异,这些差异如果被同步,可能会覆盖其他设备上的个性化配置。
- 临时文件:Obsidian 的某些插件可能会生成临时文件、配置文件,这些文件通常不需要同步。
其实在这些情况下,可以尝试通过配置 .gitignore 文件,可以避免将不必要的文件提交到 Git 仓库中,从而减少冲突的发生。
各个文件的作用
.gitignore 文件的作用是:“告诉 Git 哪些文件或目录是可以忽略的”。
而 Obsidian 仓库下,存在一个默认隐藏的 .obsidian 目录,其中包含了 Obsidian 笔记库的配置和插件信息,在 macOS 上你可以通过 ⌘⇧. (Command + Shift + .) 来显示隐藏文件。
这个目录下包括以下文件(表格摘自 这个帖子),如果你也像我一样装了很多插件,可能还会有更多文件。
配置文件 类型 说明
app.json 文件 设置 - 编辑器的配置
appearance.json 文件 设置 - 外观的配置
command-palette.json 文件 设置 - 命令面板 - 置顶命令
community-plugins.json 文件 已经安装的插件列表
core-plugins.json 文件 核心插件开启的列表
daily-notes.json 文件 日记模板的配置
graph.json 文件 图谱的配置
hotkeys.json 文件 设置-快捷键中新建立的快捷键
starred.json 文件 星标的文件列表
templates.json 文件 模板插件配置的模板位置
workspace 文件 界面的布局、最近编辑文件列表10个,当前激活的窗口
workspaces.json 文件 存放的保存的工作区布局
plugins 目录 插件安装目录
snippets 目录 CSS 样式片段
themes 目录 主题安装目录
如果你简单使用文件同步软件进行了同步,这里可能会出现一大堆 workspace 1、workspace 2、workspace 3,因为频繁的读写操作会让同步软件无法识别先后编辑时间,只能全部保留,通常你需要仔细辨别,保留一个真正生效的配置文件。
如何添加目录到 .gitignore
你只需在这个 Obsidian 仓库的根目录打开或创建的 .gitignore 文件,然后添加你需要忽略的文件。
比如你只想同步笔记,每台设备采取自己的配置(包括插件和主题),可以忽略整个 .obsidian 目录。
.obsidian/
你也可以选择性地忽略特定的目录,比如一个很常见的做法是忽略工作区的布局,因为即便是拖拽一下侧边栏的宽度,也会导致 git 识别为内容变更。这种操作就没必要进行同步了,写法如下。
.obsidian/workspace
.obsidian/workspace.json
我的推荐配置如下,你可以根据这个文件进行调整。
# 工作区配置无需同步
.obsidian/workspace
.obsidian/workspace.json
.obsidian/workspaces.json
.obsidian/workspace-mobile.json
# 关系图谱的配置无需同步
.obsidian/graph.json
# 最近访问的文件仅保
