# Obsidian Git 方案下的 \.gitignore 文件应该如何配置？

> 本文开放前 70% 正文，剩余内容会员可见。

原文：https://utgd.net/article/20596

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

# 最近访问的文件仅保
```

---

[前往标准阅读页](https://utgd.net/article/20596?audience=web)
