最近一直使用obsidian来记笔记,有的时候用台式,有的时候用笔记本。最近研究了一些obsidian的同步方法,觉得最方便的就是使用git去管理obsidian,下面来进行详细的介绍,纯保姆级教程,新手小白用刚买回来的电脑也可配置成功。
一、下载git
进入git官网下载,一路next即可。(需要科学上网)
不推荐下载到C盘(默认C盘),我这里改为E盘。
之后一直点击next,不需要做任何改动。来到下面这个界面点击finish,会出现一个网页,关闭即可。
二、git配置
- 按下【win+R】,输入
sysdm.cpl
,单击【确定】。 - 点击【高级】里面的【环境变量】
- 选择系统变量中的【Path】,点击编辑。
- 找到git的安装目录,进入到bin文件夹中,复制该路径。
- 点击【新建】,将刚才复制的路径粘贴进去,点击【确定】。
- 查看是否安装成功。 命令行输入
git -v
- 创建gitee账号 去gitee官网创建账号,登陆之后点击新建仓库。
8. 回到gitee的主页,在【代码】一栏可以看到【git全局配置】,里面有你自己的账号和邮箱
9. 配置用户名和邮箱
返回桌面鼠标点击右键,选择【open Git Bash here】
10. 在弹出的git命令窗口中输入git全局配置的命令
11. 查看是否设置成功
12. 输入以下命令生成SSH公钥,一路回车。
13. 获取RSA公钥内容,并配置到SSH公钥中,复制弹出的所有内容。
14. 回到gitee主页,点击【设置】,把SSH公钥复制进去。点击【确定】并输入密码。
三、配置obsidian
- 点开obsidian,点开需要同步的仓库,如果没有,新建一个仓库,然后进入到需要同步的仓库的文件夹中。
- 右键文件夹,点击【在终端中打开】,输入命令
git init
初始化本地仓库。 - 回到gitee页面,复制gitee仓库的ssh地址
- 输入命令
git remote add origin
加上刚才复制的ssh地址 - 输入命令
git pull 刚才复制的地址 master --allow-unrelated-histories
,这是将本地的历史和远程的历史强行合并,避免报错。 - 然后依次输入下面这几个命令,目的是创建master分支,以便后续上传。 下方引号里的内容随便写 下方引号中的master是分支名称,可以更改为别的,之后会弹出来
Are you sure you want to continue connecting?
,输入yes即可 - 安装obsidian git插件(在插件市场中安装需要科学上网),安装后点击【启用】,之后再点击【选项】
- 如果一切就绪的话,点开gie插件的选项,可以看到如下界面,如果看不到,提示类似“git is not ready”之类的,请看下方
遇到的问题
或许会对你有所帮助。 - 进行一些自动化上传和拉取的设置,我的设置如下,可以根据自己的需要进行设置。
- 不出意外的话,现在可以将实现obsidian和远程gitee仓库的互联了,将本地内容上传到gitee之后,如果想把仓库中的内容同步到其它电脑上,在另一台电脑重复以上的
第一部分和第二部分
,在进行第三步之前在新电脑创建一个空文件夹当作obsidian的仓库,但先不要用obsidian打开它,用终端cd到新建的空文件夹中,去gitee网站上你的仓库中点击右方的克隆\下载
,复制下载代码请复制以下命令到终端执行
中的代码到终端中去运行,目的是将gitee仓库中的东西下载下来(注意复制之前一定要确定本地文件夹是空文件夹,要不后面同步上传的时候会出现文件冲突)。 - 下载下来之后,用obsidian中的
打开本地仓库
打开这个文件夹,可以看到之前的obsidian的主题以及插件设置之类的都被同步过来了,接着对obsidian中的git插件进行对应的设置即可。点击commit and sync
测试一下,有如下的提示代表成功。如果文件拉取报错或者提示文件冲突,请看下方遇到的问题
或许会对你有所帮助。
四、遇到的问题
- 在笔记本上使用git将obsidian中的笔记上传到gitee中却发现在台式机上git不可用。
解决办法:
仔细查看本教程所有的操作是否在新电脑中一一进行,我配置的时候提示git不可用,最后的原因是因为我没有将本地的历史和远程的历史强行合并。看三(5)
,输入命令git pull 刚才复制的地址 master --allow-unrelated-histories
。 - 在从gitee中下载文件到新电脑中突然中断了传输,报错提示
fetch-pack: unexpected disconnect while reading sideband packet fatal: early
,这个原因通常是因为gitee中的文件较大所导致的。解决办法:
首先确定gitee下载到的本地文件夹现在是空文件夹,如果不是(有时候中断传输会自动创建一个空的仓库文件夹),请先清空。然后终端cd到这个空文件夹中,输入git config --global http.postBuffer 524288000
,目的是增加缓存空间。然后使用https的方法再下载一次试试(之前教程中的是SSH方法)。 - 如果在配置obsidian的过程中git插件报错(除了workspace.json文件报错,其余文件报错也是如此,主要是workspace.json文件) Pull failed (merge): Updating 272d342…4a831bb error: Your local changes to the following files would be overwritten by merge: .obsidian/workspace.json Please commit your changes or stash them before you merge. Aborting 这个错误通常是你在两个电脑上同时开启了obsidian,并且在一台电脑的文件更新还未上传到gitee之前就在另外一台电脑的obsidian上进行了本地修改。这样会导致文件历史冲突。
解决办法:
- 首先将两台电脑中的obsidian的git插件的设置设置到初始设置,关闭自动同步。关闭未报错电脑的obsidian(一般是一个电脑可以正常上传到gitee,但另外一台电脑在执行自动拉取操作的时候出现文件历史冲突)
- 然后终端cd到报错的obsidian文件夹中,依次输入以下命令(此方法的原理是强行将远程仓库的文件覆盖本地文件,可能会导致文件夹中未在远程仓库中的本地文件丢失): 1. 获取远程更新
git fetch origin
2. 强制覆盖本地文件git checkout origin/master -- .obsidian/workspace.json
3. 提交修改git add .obsidian/workspace.json``````git commit -m "Update workspace.json to match remote version"
4. 推送更改到远程仓库(可选,这个操作强制使未报错的电脑的本地文仓库和gitee仓库一致,确保三方文件一致)git push origin master
5. 之后点击点击commit and sync
测试一下,有如下的提示代表成功。6. 之后把两台电脑的obsidian中的git插件设置成自动同步即可,以后在使用的时候要特别注意不要在两台电脑同时对obsidian进行更改,在其中一台电脑上做完更改后一定要等他同步到远程仓库后才可对另外一台电脑的obsidian进行更改,且在对另外一台电脑的obsidian更改之前要先从gitee上执行一下拉取操作,使gitee中的文件同步到本地之后才可进行更改,否则会发生文件冲突,文件冲突主要发生在workspace.json文件中,因为这个文件包含了obsidian的本地工作区的设置,比如打开obsidian自动打开上一次打开的文件等,对obsidian的任何动作可能都会被记录到这个文件中。
版权归原作者 柏阿巴 所有, 如有侵权,请联系我们删除。