Obsidian + Git部署——Win-Android多端同步

前言

Obsidian是个非常棒的Markdown阅读和编辑器,卡片笔记的机制被其发挥的相当充分。但是缺点是不直接支持多端同步,需要购买官方的服务。所幸数据是开放的,可以用其他第三方服务来支持同步。这里用Git来作为同步数据的工具。

我常用的设备主要是办公的和家里的Windows PC,以及一部Android手机,可用的数据同步的方式主要有:

  • 用OneDrive等网盘来直接同步文件夹
  • 用Git等SCM建仓库来同步

一般来说,网盘是比较合适的方式,方便快捷。但是我比较不想用第三方的云服务,总感觉数据不放在自己手里不是很靠谱;而且网盘也通常缺乏版本回滚机制,有也效果一般;同时我自己也已经有Gogs可以用来托管自己的仓库,正好就用上了。

工具准备

云端Gogs建仓库不必多说,这个想法需要解决的问题是使用终端的数据同步方式。

  • Obsidian PC端的社区已经发展了非常久,基本各种各样的插件都可以找到。在官方推出Sync服务之前,就已经有Obsidian Git这个插件在了。这里直接使用这个插件来进行数据同步。当然也可以选择用Source Tree,或者甚至命令行手动管理仓库同步。

  • 到Android这边,Obsidian Git插件作者不想在插件里打包一份Git,所以很可惜,不能直接用插件了。这里使用Termux来操作Git同步仓库内容。

下面来一步步进行操作。

Git仓库建立

可以用Gogs或者其他方式创建一个Git仓库。

建议是先在仓库里添加一个.gitignore,忽略掉.obsidian.trash 两个目录的同步。这两个目录是跟当前工作区状态相关的,多端用Git管理容易产生冲突,导致同步失败。

1
2
.obsidian
.trash

如果想要同步一些工作区状态,可以选择具体到.obsidian里屏蔽掉几个跟本地状态相关性较强的数据文件和文件夹,留下变动较小的json。

1
2
3
4
.trash
.obsidian/themes
.obsidian/plugins
.obsidian/workspace

Obsidian Git插件

Obsidian自带了社区插件浏览器,安装起来非常方便。

  1. 打开Obsidian,设置第三方插件安全模式关闭安全模式。
  2. 关闭安全模式后,可以在此处看到社区插件项目,进入搜索下载Obsidian Git,并启用。
  3. 设置Obsidian Git中设置Git自动备份间隔等。

设置好后,本地拉好仓库,用Obsidian打开仓库文件夹就可以了。可以尝试做一些修改,观察右上角的提示来确认插件的运行状态。

Termux管理Android Git

Termux是Android上的一个非常好用的linux终端工具,可以在Google Play商店上直接下载。

在Android的文件管理中找好要放置仓库的地方,建立文件夹,并给Termux这个文件夹的访问权限。高版本的Android对于权限的控制愈发严苛,尽量把目录放置在一些权限不敏感的地方。

1. 进入Termux,用apt装好git。

1
apt install git

2. 进入仓库文件夹,Git拉取仓库。

完成后即可回到Obsidian打开仓库目录开始使用。Android上使用终端输指令总归有些麻烦,可以把常用的git命令写两个shell脚本,方便每次使用。

3. 编写pl.sh和pu.sh

  • pl.sh

    1
    2
    3
    4
    5
    6
    #!/bin/bash

    cd /path_to_vault
    git stash
    git pull
    git stash pop
  • pu.sh

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/bin/bash

    cd /path_to_vault
    git stash
    git pull
    git stash pop
    git add .
    git commit -m "commited from mobile"
    git push

    保存赋权后每次同步直接手动调用一次即可。


Obsidian + Git部署——Win-Android多端同步
http://blog.lozzmki.top/posts/29013.html
作者
Lozzmki
发布于
2022年2月12日
许可协议