基于Git实现跨系统、多设备的Obsidian Vault同步(免费、高效、稳定)
文章目录
一、Motivation
研一rookie,使用Obsidian来管理包含日报、论文、阅读笔记等在内的工作流,希望在自己的笔记本和实验室的办公电脑上同步自己的Vault,获得随时可记、随处可读、设置一致的流畅体验。
二、基本情况
- 笔记本电脑:Dell G3 + Windows 10 Version 22H2
- 实验室电脑:Intel NUC + Ubuntu 20.04.6LTS
注意:在Ubuntu下应使用Appimage的方式安装Obsidian,这是Obsidian-Git插件全面支持且推荐的安装方式
三、实现思路
- 使用Git进行版本控制
- 将Vault托管到远程仓库(如Github、Gitee等),通过跟踪(add)新文件、推送(push)修改和拉取(pull)更新等操作实现各设备间的同步
- 使用集成在Obsidian内的第三方插件’Git’实现便捷的自动备份等进阶的功能
四、操作步骤
以原设备为Windows设备,将Vault克隆到Ubuntu上并实现两设备的日常同步为例
(1)安装Git
a.在Windows上安装
方法一
从Git的官方网站下载最新的官方版本
方法二
习惯使用winget的朋友也可以在命令行或Powershell中输入如下代码来安装Git:
winget install --id Git.Git -e --source winget
b.在Ubuntu上安装
打开终端(Ctrl+Alt+T),输入如下代码:
$ sudo apt install git-all
(2)用Git对现有Vault进行版本控制
如果你是初次使用Git,需要配置用户基本信息,这不是本文主要讨论的内容,请参阅参考资料1。
-
在需要进行版本控制的文件夹单击右键打开Git Bash
-
初始化Git仓库
$ git init
该命令将创建一个名为.git
的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是Git 仓库的骨干。 但在这个时候仅做了一个初始化的操作,项目里的文件还没有被跟踪。通过git add
命令来指定所需的文件来进行追踪。然后执行git commit
操作。
$ git add YOUR_FILE
$ git add YOUR_DIRECTORY/
$ git commit -m 'initial project version'
此时使用$ git status
命令查看,会发现所有已跟踪文件在上次提交后都未被更改。现在可以将commit后的仓库推送至远程了。
(3)将本地项目提交至远程仓库
a.以Github为例创建远程仓库
- 点击页面右上角↗的➕选择“New repository”
- 为自己的远程仓库填写一个名字,设置权限为私有(如果你不想让人人都可以共享你的仓库的话),最后点击右下角的创建即可。
b.在本地添加远程仓库
- 获取远程仓库的链接
- 在Git Bash中运行:
git remote add <shortname> <url>
其中shortname是你自己给远程仓库起的简洁的别名,url是你远程仓库的链接
然后运行$ git remote -v
可以看到远程仓库添加成功
c.提交至远程仓库
我给远程仓库的别名是origin
,我在远程仓库的默认分支是master
,则我可以在Git Bash中运行如下代码来完成推送:
$ git push origin master
运行后会弹出身份验证,可以通过浏览器进行授权(可以使用移动端的Github,也可以使用账号密码认证,跟着提示做就好),也可以通过生成的Personal access token认证(后文会提到)
推送成功会有如下类似的显示:
(4)使用Obsidian中的Git插件来便捷操作
前述操作已经成功实现了远端同步,但并不简洁方便,使用插件来将Git的操作集成在Obsidian里
- 关闭安全模式,在第三方插件市场中搜索“Git"(作者为Vinzent),安装并启用。
- 重启Obsidian后,打开已经初始化为Git仓库的Vault,插件会自动识别并询问你是否链接到该仓库,选择是。(操作快捷简单以至于甚至没来得及截图)
- 在侧边栏打开”Git source control“,可以清晰、方便地进行版本控制了,比如现在:
- 检查到如下更新(Changes),点击➕,将所有变更都Stage
- 如果确认这些变更都没问题,都是你想要的,可以点击√将其全部Commit
- 最后点击Push将所有经过Commit的变更都推送到远程仓库
- 推送成功!
(5)在其他设备克隆远程仓库
- 下载Obsidian(如果是在Linux系统上,一定要选择Appimage的安装方式!),安装好Git插件
- 生成Personal access tokens (classic)
- 设置->最左下方的开发者设置->Personal access tokens (classic)
- 一定要记下这串Token,因其只显示一次
- 打开Obsidian,使用
Ctrl+P
打开命令菜单,搜索并选择”Git:clone an existing remote repo“
按如下方法组合你的Token和url:
在url的https://后插入你的Token+@
形如:https://ghp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX@github.com/YOUR_USERNAME/YOUR_PROJECT.git
- 按提示选择克隆的目标文件夹
- 静待克隆,直到出现克隆完成,重新启动的提示
- 重启Obsidian,享受丝滑的同步体验!