我在《操作基础篇 04 — 做好笔记备份 ,使用 iCloud 和 Google Drive 进行双重备份》谈到了使用 iCloud + Google Drive 备份笔记档案,属於简单的档案备份方式。
这 2 种方式都属於即时备份,也就是修改笔记的当下,内容就同步到云端硬碟上,随时保持在最新的笔记内容。
然而这两个备份工具也有缺点,如果你想要查询某则笔记的特定天数前历史纪录 (例如 1 个月前),是非常不方便的。
备注:Google Drive 最长只能保存同一份档案的 30 天历史纪录,30 天过後历史纪录就会被删除。
目前免费且较方便的解决方案就是使用 Github 来进行备份」。只要在完成设定,就能让 Obsidian 间隔 X 分钟自动备份,将笔记的变更内容同步到 Github 上。
设定 Github 备份的方式有 2 种:使用命令列 (Command line) 和 Github 桌面软件,这篇文章主要介绍後者,大家依样画葫芦就可以成功了。
一共有 3 个步骤:
备注:若对命令列设定 Github 同步有兴趣,可参考 Bryan Jenks 的 这篇文章。
请先到 Github.com 注册帐户,我们将会透过 Github 同步所有笔记。
接着下载并安装 Github for Desktop ,这样我们就能透过桌面软件进行 Git 指令操作,不需要透过命令列。
假设你已经建立 Obsidian Vault (资料夹),我们需为 Vault 添加 Git 的设定,等下才能透过 Obsidian 插件自动同步。
开启 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 上。
回到 Github Desktop,我们还要点击 Publish repository 才能将资料夹真的推送到 Github 上。
再次点击 Publish Repository 即可推送。
登入自己的 Github 帐号,点击大头贴 > Your repositories。
确认 Obsidian Valut 成功出现在 Github Repositories。
回到 Obsidian,我们需要下载 Obsidian Git 这款插件才能让 Obsidian 自动同步。
点击 Settings > Community plugins > 关闭 Safe mode > Browse > 搜寻「Obsidian Git」> 点击 install。
记得在 Community plugins 打开 Obsidian Git。
点击左侧 Obsidian Git,我们还要微调一些设定。
参考《Obsidian 上手及使用 Git 跨平台同步》这篇文章,可依据作者的建议设定:
Obsidian 自动备份到 Github 的时间,可依据个人需求调整。作者建议 5 分钟,我自己是设定 30 分钟。
你可以把 Commit 想成是要推送更新到 Github 时,都要写一些文字说明这次的更新。
右侧可加上自己的电脑名称当作讯息识别,用预设值也可以,效果如下。
每次打开 Obsidian 时,也从 Github Pull 所有的变更。
备注:push 和 pull 是 Git 的术语。push 是指从本机端上传更新到 Github,pull 则是从 Github 下载档案更新到本机端。
因此 Pull updates on startup 的意思,就是每次开启 Obsidian 时,都先从 Github 将最新的资料更新回本机端。
关闭後 Obsidian 才会自动把所有 Commit 推送到 Github 上,让其他装置可以同步。
到这边为止已经设定好 Obsidian 自动同步到 Github 上了!但有 3 个细节需要补充说明。
请注意当 Obsidian 处於未开启状态时,插件是不会自动同步笔记到 Github 上的,因此若在关闭 Obsidian 前自动同步尚未触发,我们必须手动推送更新。
在 Settings > Hotkeys > 搜寻 git 就可以看到「Obsidian Git Commit *all* changes and push to remote repository」,请为它设定一组快捷键,方便手动更新。
若遇到 Obsidian 没有自动从 Github 拉取更新到本机端的话,可以使用此指令手动拉取更新,请为它也设定一组快捷键,方便更新。
引述《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 的过程中,发现 Obsidian Git 持续无法更新笔记到 Github 上。
在 Obsidian 中按下 cmd + shift + I 开启开发者模式并查看 Console Log 後得到以下错误资讯:
需要设定 Github SSH 金钥,详细步骤请参考 此篇文章。文章写得非常详细,跟着设定即可成功。
这篇文章介绍了自动将笔记备份到 Github 的方法,虽然设定过程比较复杂,但我非常推荐你能尝试看看这个备份方法。
Github 相对於 iCloud 和 Google Drive,有比较好的档案版本管理介面。若真的不幸要回溯笔记的历史版本时,Github 会方便许多。
<<: Day26 - [丰收款] 永丰线上收款支付API功能实作总结(2)
此篇会介绍如何修改 Bootstrap 元件样式。 事前准备 须先了解变数设置、通用类别设置,再继...
昨天介绍的 Deployment Manager 可以透过 GUI 与 Command Line 的...
这一次被公司派往盐水支援自动化专案 每天最期待的就是下班後要吃什麽 是要待在盐水吃意面 还是要去新营...
大家好!本篇将会以我转职的心路历程作为主轴,我为什麽转职成QA?当开发与当QA差很多吗?当QA该注意...
不知不觉在iT邦也发表了超过200篇文章(前天达到)。今天凌晨也升级到了 iT邦新手3级 的人。 ...