公司的防火墙会屏蔽掉公有云服务,所以目前用 git 管理。
仓库地址
目标功能
思源笔记的笔记文档(.sy
文件)默认是单行 json 格式,能保证软件的读写、解析效率,但不利于 git 管理:
- 单行,容易出现冲突
- merge、diff 的效率低
本仓库的脚本和配置方法,能够使你在使用 git 管理思源笔记的笔记文档(.sy
文件,单行 json 格式)时:
-
git 工作区的本地笔记文件为单行 json, 以保证思源笔记软件的解析、读写效率
-
git 暂存区、本地仓库&远程仓库把笔记存储为多行 json,以便 diff,merge
- 不仅把 json 从单行转换成了多行,还自动对段落句子、代码块中的语句进行了拆分,按行存储,进一步减少冲突,提高 git merge、diff 效率
使用方法
-
请仔细阅读本文档 缺点 部分,确保你能接受这些缺点,并在出现冲突、损坏等问题时有能力恢复或解决。
-
准备环境; clone 此仓库到一个位置,比如
/c/Users/scripts/siyuan_git_filter
-
clone 需要使用
git
命令 -
脚本的运行需要
python
环境,3.7 及以上- 你不需要手动执行 python 命令,python 脚本是由 git 自动执行的
-
-
创建思源笔记的 git 仓库,并设置 git.filter (每个仓库只需设置一次)。如果你之前已经再用 git 管理,在设置之后应该也能够直接使用
-
给这个 filter 功能起个名,比如
sentencebreak
-
设置
.gitattributes
, 写入一行内容*.sy filter=sentencebreak
-
设置
git config filter
的clean
和smudge
, 依次执行下两条命令git config filter.sentencebreak.clean "python /c/Users/scripts/siyuan_git_filter/sentencebreak_clean.py" git config filter.sentencebreak.smudge "python /c/Users/scripts/siyuan_git_filter/sentencebreak_smudge.py"
-
-
正常使用 git add, commit, pull, checkout 等命令
-
验证是否生效
-
修改一个被 git 管理过的文件, 然后执行
git diff
查看被修改的内容,应该是多行的效果:
-
缺点缺陷
见仓库的 README, 这里就不说了哈哈哈
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于