article_image

当使用 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

# 最近访问的文件仅保

机器阅读:已开放本文前 70% 的正文,剩余内容会员可见。 标准阅读页 · Markdown


author_avatar

#UNTAG Developer