多人协作与 Git 冲突处理

摘要:知识库靠 Git 在团队间同步内容(见 Git自动同步说明),但 Git 不是实时协作工具——如果两个人同时改了同一篇笔记的同一部分,是会产生冲突的。这篇讲怎么避免、遇到了怎么办。

先理解同步节奏,不是”实时”

和多人同时在线编辑一个共享文档(比如腾讯文档)不一样,Obsidian + Git 的协作方式是:

  1. 每个人在自己电脑上编辑,本地每 10 分钟自动提交一次改动
  2. 有人手动推送(push)改动到远程仓库
  3. 其他人需要手动或者定期拉取(pull)远程仓库的最新内容,才能看到别人的更新

也就是说,“你改完之后别人不会立刻看到”,中间存在一个不确定的时间差。理解这一点,就能明白为什么会有冲突风险。

什么情况会产生冲突

最典型的场景:你和同事同时都在改同一篇笔记(比如都在往同一个项目档案的”核心结论”部分加内容),且都在对方推送之前保存了自己的版本。等到需要合并这两份改动时,Git 无法自动判断该保留谁的内容,就会产生”冲突”。

冲突大多发生在:

  • 多人正在同时整理同一批案例摘要
  • 多人同时更新同一个领域的”_概览”页面
  • 多人同时改同一份项目档案的进度清单

怎么降低冲突概率

  • 认领再动手:整理一批案例、编辑某篇重要笔记之前,先在团队群里说一声”我在改XX”,避免两人同时动同一篇
  • 小步快跑:改完一小部分就手动同步(推送/拉取),不要攒一大堆改动放很久才同步,改动窗口越长,冲突概率越高
  • 新建笔记优先于改已有笔记冲突风险:如果是新增内容(比如新建一篇案例摘要),几乎不会冲突,因为是全新文件;冲突主要发生在编辑同一篇已有笔记

真的遇到冲突了怎么办

不要自己在不熟悉 Git 的情况下尝试解决冲突,冲突标记(类似 <<<<<<< HEAD 这样的符号)如果处理不当,可能造成内容进一步丢失。正确做法:

  1. 保留自己那份修改的内容(可以先复制一份到别的地方备份)
  2. 联系知识库维护者,说明”我改了哪篇笔记的哪部分,可能和别人冲突了”
  3. 由维护者用 Git 工具查看两个版本的差异,人工判断怎么合并最合理

与本知识库的关联

  • Git 自动提交/同步机制的基础说明见 Git自动同步说明
  • 误删或找不回内容时的处理方式,同样见上面这篇