旧文章从语雀迁移过来,原日期为2022-10-22

思源笔记是一款优秀的本地优先的双链大纲笔记软件,拥有强大的笔记编辑功能且都是免费,唯一付费的就是云同步等一些服务了。但如果暂时还用不着云同步的,我们可以利用 Git 同步思源笔记。

优缺点

  • Git这套方案 和官方同步是有差异的,唯一优点就是免费,意味着你得包涵以下缺点:

    • 移动端

      • 移动端只能查看(我个人觉得移动端写笔记的场景很少,可以用语雀小记或者 flomo 来代替记录)
      • 移动端的同步有点麻烦,但总体是建立在很少使用的场景下
      • 只能在 Android(目前)
    • PC 端
      • PC 端使用思源笔记前,记得拉取一下笔记数据
      • PC 端使用思源笔记后,记得提交一下笔记数据
  • Git 和第三方云盘相比较,不用担心同步导致的错误问题(因为官方思源笔记不支持通过第三方同步盘进行同步),因为每次的同步都两个版本有差异你是需要手动解决冲突的,保证了备份的稳定性,而且 git 的记录方便回滚任意记录的笔记数据

开始

前置准备动作:

  • 本地已安装 Git
  • 有一个 GitHub 或 Gitee 的账号,建议 Gitee 国内速度稳定
  • 一台安卓手机

PC

  1. 打开思源笔记的 设置 ,选择 关于 找到 工作空间目录

  1. 在空间目录打开命令行工具,运行命令:
git init
  1. 添加 git 忽略文件(官方的目录只需同步 /data 目录,所以其他目录我们忽略掉)
/backup
/conf
/history
/sync
/temp
/corrupted
.DS_Store
  1. 在 Gitee 新建一个私有仓库,按照提示配置账户邮箱,增加远端仓库
# 配置名字和邮箱
git config --global user.name "xxx"
git config --global user.email "xxx@163.com" # 增加远程仓库
git remote add origin git@gitee.com:xxx/test.git
git push -u origin "master"
  1. 换到另一台电脑,你只需要通过 git clone 克隆下来,在思源笔记的 设置 ,选择 关于 找到 工作空间目录,切换到该目录即可。

完成上面的1-5步其实已经可以将思源笔记的数据进行备份了,可以实现家里和公司的笔记同步备份。

移动端

PC 很简单,移动端就比较麻烦了,移动端由于 Android11 开始不能编辑 Android/data 里面的数据(除非手机自己 root),但思源笔记的数据又是在其中,所以无法用第三方软件(如 folderSync)来同步。所以我们得换一种方式,通过在 设置 的通过 导入 数据实现,而且导入的格式为将 data 目录打包成 zip

MGit

对于安卓,我们可以通过 MGit 来实现 git 项目的下载,这个 app 的页面很简单,步骤是:

  1. 首先点击右上角图标进入设置,设置好存储位置

  1. 点击 添加远程地址和本地路径,克隆即可,过程会提示输入账号和密码(非 SSH)

  1. 将拉取的 data 目录,通过手机打包成 zip 格式
  2. 在思源笔记中的设置选取导入数据,选择第 3 步打包出来的文件
省略 zip 打包

后续每次移动端同步还是很麻烦,拉取下来需要手机打包工具 zip,最后还要选择导入,有没办法省略其中一些环节呢?有的,我们可以将这个打包过程前置到 PC 端提交数据时去做。

那我们不妨写一个脚本去做这个事情,在 PC 端的工作目录下新建一个 build.sh

#!/bin/bash

# 打包data并备份数据

# 变量
PACKAGE_NAME="data"
DATETIME=`date "+%Y-%m-%d %H:%M:%S"`
TARGET_BRANCH="master" # 检测git空间状态
if [[ -n $(git status --s) ]];then
# 打包
rm -f $PACKAGE_NAME.zip
zip -r $PACKAGE_NAME.zip $PACKAGE_NAME # 提交推送
if [ $? -eq 0 ]; then
git add .
git commit -m "$DATETIME"
git pull
git push --set-upstream origin $TARGET_BRANCH
fi
else
echo "workspce no changes"
fi

每次写完笔记需要提交时,我们就在 git bash 在目录下执行 .build.sh 就可以了,打包,提交,推送,全部动作一个脚本搞好。

mac 本身支持 zip 打包,windows 要在 git bash 中使用 zip 命令打包,可以参考这篇文章

那经过前置打包后,每次移动端我们只需要两步:

  • Mgit 拉取笔记数据
  • Siyuan App 设置导入选取笔记数据下 data.zip 即可

总结

这是笔者个人的同步思路,虽然不完美,但也解决了 PC 端同步,移动端能偶尔但能随时查看的需求。后续重度使用后,也会考虑云端服务。

利用Git同步思源笔记的更多相关文章

  1. Windows下自动云备份思源笔记到Gitee

    前言 思源笔记是一款本地笔记为主的软件,其目前提供了148元/year的付费同步功能,但对于21世纪中国难民而言还是太贵啦. 条件允许的同学还是使用官方的同步,支持下作者. 所以,就在思考有没有白嫖的 ...

  2. Git常用命令清单笔记

    git github 小弟调调 2015年01月12日发布 赞  |   6收藏  |  45 5k 次浏览 这里是我的笔记,记录一些git常用和一些记不住的命令,这个笔记原本是基于 颜海镜的文章增加 ...

  3. Xcode中利用git源代码版本号控制

    git是一个版本号控制系统,能够通过命令行来调用,也有专门的桌面软件.这里主要介绍在Xcode中怎样利用git来进行版本号的控制. 一.创建git源 从Xcode5開始引入了使用git的一些新特性.将 ...

  4. 第三章 Git的入门 - 读书笔记

    Android驱动月考3 第三章 Git的入门 - 读书笔记 对于Github,这是全世界最大的开源平台,你可以把你做的项目在这里开源,把你发现的一些新技术在这里开源,向全世界的开发者们分享,大家都彼 ...

  5. git获取内核源码的方法

    [转]http://www.360doc.com/content/17/0410/16/23107068_644444795.shtml 1. 前言 本文主要讲述ubuntu下通过git下载linux ...

  6. 利用Git进行团队协作

    前言: 这里简单介绍一下Git的历史. 同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代.Linux 内核开源项目有着为数众广的参与者.绝大多数的 Linux 内核维护工作都花在了 ...

  7. Android中加入思源字体/NotoSansCJK/SourceHanSans

    系统版本号:Android 4.2.2_r1 本文主要是在Android中加入思源字体的过程记录. 思源字体是Google和Adobe在2014.07.18公布的中文字体. 1.获取思源字体(Goog ...

  8. 利用Git钩子实现代码发布

    目录 1.什么是git钩子 2.安装一个钩子 3.常用的钩子脚本类型 3.1 客户端钩子 3.1.1 pre-commit 3.1.2 prepare-commit-msg 3.1.3 commit- ...

  9. Visual Studio C# 利用git和github协同开发时产生冲突的解决办

    Visual Studio C# 利用git和Github协同开发时产生冲突的解决办法 前言:在前两天的助教作业中,发现了自己没有办法解决在用vs开发C#的窗体项目的过程中产生的冲突问题,在查阅了资料 ...

  10. 如何在 Visual Studio 中使用 Git 同步代码到 CodePlex

    开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framework.ASP.Net MVC等框架的逐渐开源,也让大家看到了微软开源的步伐.CodePlex 则是 ...

随机推荐

  1. 华为网关交换机开启DHCP server服务

    华为网关交换机可以配置基于全局地址池的DHCP服务器,也可以配置基于接口地址池的DHCP服务器,本人比较倾向于配置基于接口地址池的DHCP服务器,因此在这里只介绍后者. 第一步:开启DHCP功能 [S ...

  2. liunx之expect简介

    导航: 一.expect安装.介绍.使用场景二.expect使用原理三.expect使用语法四.expect使用举例五.expect相关错误处理 - - - - - - - - - 分割线 - - - ...

  3. 插件化编程之WebAPI统一返回模型

    WebApi返回数据我们一般包裹在一个公共的模型下面的,而不是直接返回最终数据,在返回参数中,显示出当前请求的时间戳,是否请求成功,如果错误那么错误的消息是什么,状态码(根据业务定义的值)等等.我们常 ...

  4. Java学习之路:快捷键

    常用的快捷键 Ctrl+Shift:切换输入法 Ctrl+C:复制 Ctrl+V:粘贴 Ctrl+X:剪切 Ctrl+A:全选 Ctrl+Z:撤销 Ctrl+Y:返回撤销 Ctrl+S:保存 Shif ...

  5. Sentinel安装教程【Linux+windows】

    一.Sentinel的简介 Sentinel是阿里巴巴出品的一款流控组件,它以流量为切入点,在流量控制.断路.负载保护等多个领域开展工作,保障服务可靠性. 如果你学过netflix公司旗下的Hystr ...

  6. 如何使用IDEA自动生成类图

    然后再类里边按 Ctrl+Alt+U 然后就会生成类图,这个样子 然后怎样把生成的类图搞出来.当然是使用截图软件啦.微信上的截图软件和qq上的截图软件好像都不在阔以,你一点击截图按钮.生成的类图就会消 ...

  7. 2.-url和视图函数

    一.URL-结构 1.定义:统一资源定位符 Uniform Resource Locator 2.作用:用来表示互联网上某个资源地址 3.URL的一般语法格式为(注:[]代码其中的内容可以省略): 格 ...

  8. Python基础部分:3、 pycharm的下载与使用

    目录 pycharm下载与使用 一.软件说明 二.版本说明 三.如何免费使用正式版软件 四.pycharm运行空间 五.文件后缀名 六.安装pycharm工具 七.pycharm的基本配置和PY文件的 ...

  9. excel公式与快捷操作

    将首行的公式,运用到这一整列 1.选中要输入公式的第一个单元格,SHIFT+CTRL+方向键下,在编辑栏中输入公式,按下CTRL+回车: 2.先输入要填充的公式,按下SHIFT+CTRL+方向键下,再 ...

  10. ui自动化测试数据复原遇到的坑——1、hibernate输出完整sql

    公司老项目使用SSH+informix+weblogic+IE开发,我们要做ui自动化测试,其中的测试数据复原,我打算通过hibernate输出sql,然后把插入.更新的sql改为delete或upd ...