You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Git在Obsidian移动端与桌面端自动管理自动生成的配置文件?

解决Obsidian跨设备同步插件配置的冲突问题

针对你遇到的移动端修改插件配置文件后误提交的问题,这里提供两种可行的解决方案,均避开Git不推荐的assume-unchanged/skip-worktree标记:

方案一:Git Smudge/Clean过滤器自动分离配置

这个方案通过Git的过滤器机制,让桌面端的配置变更自动同步到远程专用文件,同时忽略移动端的本地修改:

  1. 创建桌面专用配置文件
    在你的Obsidian仓库中,复制.obsidian/core-plugins.json和.obsidian/community-plugins.json,分别命名为core-plugins-desktop.json和community-plugins-desktop.json,将这两个新文件提交并推送到远程仓库。

  2. 配置Git过滤器
    进入仓库目录,执行以下命令设置过滤器:

    git config filter.obsidian-plugin-conf.smudge 'cat %f-desktop.json'
    git config filter.obsidian-plugin-conf.clean 'cat %f > %f-desktop.json && cat %f'
    
    • smudge动作:拉取代码时,将桌面专用配置文件的内容覆盖到实际使用的core-plugins.json/community-plugins.json
    • clean动作:提交代码时,将实际配置文件的内容同步到桌面专用文件,同时保留原文件内容
  3. 绑定过滤器到目标文件
    在仓库根目录的.gitattributes文件中添加以下规则(没有则新建):

    .obsidian/core-plugins.json filter=obsidian-plugin-conf
    .obsidian/community-plugins.json filter=obsidian-plugin-conf
    

    提交.gitattributes到远程仓库。

  4. 移动端忽略本地修改
    在Android的MGit中打开仓库,编辑.git/info/exclude文件,添加:

    .obsidian/core-plugins.json
    .obsidian/community-plugins.json
    

    这样移动端的Git会忽略这两个文件的本地修改,不会将Obsidian自动禁用插件的变更提交或推送,但拉取时仍会获取桌面端同步的最新配置。

方案二:分离基础配置文件+手动同步

这个方案更直观,通过独立的基础配置文件追踪桌面端变更,移动端仅拉取基础文件并忽略本地修改:

  1. 桌面端设置基础配置文件

    • 复制.obsidian/core-plugins.json → .obsidian/core-plugins-base.json,community-plugins.json → community-plugins-base.json,将这两个base文件提交到远程仓库。
    • 在仓库的.gitignore中添加:
      .obsidian/core-plugins.json
      .obsidian/community-plugins.json
      
    • 编写一个简单的同步脚本(比如sync-plugin-conf.sh),用于将当前配置同步到基础文件:
      #!/bin/bash
      cp .obsidian/core-plugins.json .obsidian/core-plugins-base.json
      cp .obsidian/community-plugins.json .obsidian/community-plugins-base.json
      git add .obsidian/core-plugins-base.json .obsidian/community-plugins-base.json
      echo "插件配置已同步到基础文件"
      

    每次在桌面端修改插件配置后,运行该脚本并提交基础文件到远程。

  2. 移动端拉取并应用基础配置

    • 拉取远程仓库后,手动将core-plugins-base.json复制到core-plugins.json,community-plugins-base.json复制到community-plugins.json。
    • 同样在移动端的.git/info/exclude中添加规则,忽略实际配置文件的本地修改:
      .obsidian/core-plugins.json
      .obsidian/community-plugins.json
      

方案对比

  • 方案一:全程自动同步,无需手动操作,但需要配置Git过滤器,适合熟悉Git高级功能的用户。
  • 方案二:逻辑简单直观,易维护,但需要手动触发同步动作,适合偏好简单操作的用户。

内容的提问来源于stack exchange,提问作者Fie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 10:50:37