Day 26 : 插件篇 05 — 做好笔记备份,使用 Obsidian Git自动备份笔记到 Github

前言

我在《操作基础篇 04 — 做好笔记备份 ,使用 iCloud 和 Google Drive 进行双重备份》谈到了使用 iCloud + Google Drive 备份笔记档案,属於简单的档案备份方式。

这 2 种方式都属於即时备份,也就是修改笔记的当下,内容就同步到云端硬碟上,随时保持在最新的笔记内容。

然而这两个备份工具也有缺点,如果你想要查询某则笔记的特定天数前历史纪录 (例如 1 个月前),是非常不方便的。

备注:Google Drive 最长只能保存同一份档案的 30 天历史纪录,30 天过後历史纪录就会被删除。

目前免费且较方便的解决方案就是使用 Github 来进行备份」。只要在完成设定,就能让 Obsidian 间隔 X 分钟自动备份,将笔记的变更内容同步到 Github 上。

设定 Github 备份的方式有 2 种:使用命令列 (Command line) 和 Github 桌面软件,这篇文章主要介绍後者,大家依样画葫芦就可以成功了。

一共有 3 个步骤:

  • 步骤一、注册及下载 Github for Desktop
  • 步骤二、为需要同步的 Vault 增加 Git 设定
  • 步骤三、安装与设定 Obsidian Git

备注:若对命令列设定 Github 同步有兴趣,可参考 Bryan Jenks 的 这篇文章

步骤一、注册及下载 Github for Desktop

请先到 Github.com 注册帐户,我们将会透过 Github 同步所有笔记。

接着下载并安装 Github for Desktop ,这样我们就能透过桌面软件进行 Git 指令操作,不需要透过命令列。

步骤二、为需要同步的 Vault 增加 Git 设定

假设你已经建立 Obsidian Vault (资料夹),我们需为 Vault 添加 Git 的设定,等下才能透过 Obsidian 插件自动同步。

1.在本机端添加 Git Repository 设定

开启 Github for Desktop,点选 “Add an Existing Repository from your Hard Drive”。

选择你的 Obsidian Vault,并点击 Add Repository。此时系统会说「这个资料夹目前还不是 Git repository (Github 上的资料夹)」,请点击 create a repository 建立。

Name 的资讯代表即将建立的 Git Repository 资讯,可依据个人喜好添加说明,若不想改动直接按 Create Repository 即可。

此时软件会跳到新的页面,我们检查一下刚才选择的 Obsidian Vault,可看到在本机端已经建立了 Git Repository 的设定。

备注:这些档案预设是隐藏的,Mac 用户可以按下 cmd + shift + . 就可以看到了。

目前我们只建立好本机端的设定,还在将此设定推送到 Github 上。

2.将 Git Repository 设定推送到 Github 上

回到 Github Desktop,我们还要点击 Publish repository 才能将资料夹真的推送到 Github 上。

再次点击 Publish Repository 即可推送。

3. 检查 Github,确认 Git Repository 已建立

登入自己的 Github 帐号,点击大头贴 > Your repositories。

确认 Obsidian Valut 成功出现在 Github Repositories。

步骤三、安装与设定 Obsidian Git

1.安装 Obsidian Git

回到 Obsidian,我们需要下载 Obsidian Git 这款插件才能让 Obsidian 自动同步。

点击 Settings > Community plugins > 关闭 Safe mode > Browse > 搜寻「Obsidian Git」> 点击 install。

记得在 Community plugins 打开 Obsidian Git。

2.设定 Obsidian Git

点击左侧 Obsidian Git,我们还要微调一些设定。

参考《Obsidian 上手及使用 Git 跨平台同步》这篇文章,可依据作者的建议设定:

  • 设定 Vault backup interval (minutes)

Obsidian 自动备份到 Github 的时间,可依据个人需求调整。作者建议 5 分钟,我自己是设定 30 分钟。

  • 设定 Commit message

你可以把 Commit 想成是要推送更新到 Github 时,都要写一些文字说明这次的更新。

右侧可加上自己的电脑名称当作讯息识别,用预设值也可以,效果如下。

  • 开启 Pull updates on startup

每次打开 Obsidian 时,也从 Github Pull 所有的变更。

备注:push 和 pull 是 Git 的术语。push 是指从本机端上传更新到 Github,pull 则是从 Github 下载档案更新到本机端。

因此 Pull updates on startup 的意思,就是每次开启 Obsidian 时,都先从 Github 将最新的资料更新回本机端。

  • 关掉 Disable Push (Disable Push : off)

关闭後 Obsidian 才会自动把所有 Commit 推送到 Github 上,让其他装置可以同步。

3. 其他细节

到这边为止已经设定好 Obsidian 自动同步到 Github 上了!但有 3 个细节需要补充说明。

  • 设定 「Obsidian Git Commit *all* changes and push to remote repository」 快捷键

请注意当 Obsidian 处於未开启状态时,插件是不会自动同步笔记到 Github 上的,因此若在关闭 Obsidian 前自动同步尚未触发,我们必须手动推送更新。

在 Settings > Hotkeys > 搜寻 git 就可以看到「Obsidian Git Commit *all* changes and push to remote repository」,请为它设定一组快捷键,方便手动更新。

  • 设定 Pull from remote repository

若遇到 Obsidian 没有自动从 Github 拉取更新到本机端的话,可以使用此指令手动拉取更新,请为它也设定一组快捷键,方便更新。

  • 同步发生问题时,必须开启 Github Desktop 手动推送更新

引述《Obsidian 上手及使用 Git 跨平台同步》的说明:

即使设定了更频繁的同步,仍有机会因不同装置的版本不一样,而发生同步的问题,这时我们便需要打开 Github for Desktop 解决问题。

Obsidian Git 错误的指示不太清晰,不过打开 Github for Desktop 就会显示问题在哪。大多情况,Github 也是会建议暂时藏起(Stash)本机有冲突的档案,待与 Github 同步後,再 Apply 原有的更改。

见下图,先 Stash & Continue,然後按 Pull Origin,同步後再中间按 View Stashed,就可以按 Restore 回复原先收起的变更,最後手动 Commit 和 Push 一次就完成。如同步问题出现於同一句子,可能要手动於 Obsidian 删去不需要的版本。

补充:Obsidian Git 同步问题与解决办法

问题

我在使用 Obsidian 的过程中,发现 Obsidian Git 持续无法更新笔记到 Github 上。

在 Obsidian 中按下 cmd + shift + I 开启开发者模式并查看 Console Log 後得到以下错误资讯:

解决办法

需要设定 Github SSH 金钥,详细步骤请参考 此篇文章。文章写得非常详细,跟着设定即可成功。

结论

这篇文章介绍了自动将笔记备份到 Github 的方法,虽然设定过程比较复杂,但我非常推荐你能尝试看看这个备份方法。

Github 相对於 iCloud 和 Google Drive,有比较好的档案版本管理介面。若真的不幸要回溯笔记的历史版本时,Github 会方便许多。


<<:  Day26 - [丰收款] 永丰线上收款支付API功能实作总结(2)

>>:  Day 27 任天堂eShop游戏价格爬取

第 28 集:Bootstrap 客制化 component 元件样式

此篇会介绍如何修改 Bootstrap 元件样式。 事前准备 须先了解变数设置、通用类别设置,再继...

[Day23] Infrastructure as code

昨天介绍的 Deployment Manager 可以透过 GUI 与 Command Line 的...

[DAY 01] 在台南想瘦是不可能的吧...那就一起胖吧=w=

这一次被公司派往盐水支援自动化专案 每天最期待的就是下班後要吃什麽 是要待在盐水吃意面 还是要去新营...

[经验分享] 从开发转QA工程师?为何想要转职?开发与QA的差异?

大家好!本篇将会以我转职的心路历程作为主轴,我为什麽转职成QA?当开发与当QA差很多吗?当QA该注意...

【杂谈】 今天就来点闲聊吧②

不知不觉在iT邦也发表了超过200篇文章(前天达到)。今天凌晨也升级到了 iT邦新手3级 的人。 ...