本文介绍用Github+git+TortoiseGit实现Obsidian PC平台同步(后面简称Github同步方式)
如果你只有PC平台云同步的需求,这种方式可能是最好的
引言和优点
- git:是一个版本控制软件,版本控制的概念在后面有演示。
- Github:是一个存储被版本控制的文件夹的云平台,可以简单认为是其他同步方式里的OneDrive/百度云/坚果云。
- TortoiseGit:是git的图形化客户端,有了它你几乎不需要了解git复杂的概念和命令。
整个同步过程是几乎不需要命令操作的,只有在同步时需要用到两个命令git push和git pull
(TortoiseGit支持中文操作界面)
Github同步方式的优点
自己一个人玩几乎不存在同步冲突
即使发生冲突了,也能够很好的解决
后文会讲解可能出现同步的情况和解决冲突的方法
存储空间不受限制
超过1G可能会收到Github的警告
版本控制
能够看到当前版本和上一次同步的版本之间的差异,比如
- 有哪些文件(包括文件属性)被修改了,以及文件修改的内容是什么
- 有哪些新加的文件和被删除的文件
能够回退到任意同步版本
Github同步的环境配置
git
下载
下面的图文以Windows平台为例
安装
下一步
选择安装路径
取消Git GUI勾选,我们用TortoiseGit作为图形界面。不取消勾选也行
之后都是下一步就行
TortoiseGit
下载
安装
没说到的部分点下一步就行,注意下安装位置
- 配置Git应用程序所在路径
- 配置你提交版本时写入的名字和邮箱
这两个信息自己可以随意配置,不影响使用,但最好有意义
在你的Obsidian根目录创建Git仓库
(将你的Obsidian根目录被Git版本控制)
这里以空Obsidian库为例
- 不勾选Make it Bare,点击Ok
将你的Obsidian库与Github关联
这里需要科学上网登录此网站
在Github上创建仓库
创建好Github账号后点击新建仓库
左右两边的按钮都行
设置仓库名后点击Create repository
如果设置为private,那么这个仓库不会被其他人看见
将Github上的仓库与你本地的Obsidian根目录相关联
复制红色框的内容,最好点击右边的复制按钮
将内容复制到这个命令窗口执行,随后就关联成功了
Github同步操作
本地提交
写上本次提交的信息(注释)后,点commit即可
将本地提交的信息推送到Github
命令行操作(推荐,因为这一步图形化操作容易出问题)
输入git push命令后,就会将本地提交的记录推送到Github中
在git push之前需要确保本地是干净的,也就是点击Git Commit打开图形化界面后没有信息需要提交的状态
注意git push可能会很慢或失败,这就是Github同步的缺点
原因是国内网络有一堵墙
在文章后面会有解决方案
第一次执行git push命令时需要登录Github
点
sign in with your browser登录即可图形化操作
在弹出的界面点击OK即可
从Github更新数据到本地
命令行操作(推荐,因为这一步图形化操作容易出问题)
这一步也会有git push同样的问题
图形化操作
在弹出的界面点击Ok即可
在其他PC设备上或本地其他路径拉取Github仓库
如下点击HTTPS链接的复制按钮
点击Git Clone
在弹出的界面URL输入你刚从Github复制的链接
Directory是你本地的拉取目的路径
Github同步的缺点和解决方案
同步慢/易失败
因为国内网络有一堵墙,所以在使用git push命令和git pull命令时多数情况下会很慢,也经常会失败
通过下面的方法可以减少此类问题的发生
解决方案
在本机配置Github域名IP
参考链接https://blog.csdn.net/weixin_47061482/article/details/131661386
登录下面的网址,查找Github的域名IP,在2023.9.19日,IP为140.82.114.3
Github的IP是常年不变的,配置一次就行
https://www.ipaddress.com/
将IP写入到本机的域名解析文件hosts文件里
hosts文件的一般路径C:\Windows\System32\drivers\etc\hosts
在hosts文件的末尾写入
140.82.113.3 github.com
如果你使用代理服务器科学上网,在git里添加代理服务器配置,减少同步慢/失败的概率
参考链接: https://blog.csdn.net/chaoge_dgqb/article/details/126795756
打开git命令行
输入
git config --global https.proxy socks5://127.0.0.1:你的代理服务器端口
其他疑难杂症
Waring:in the working copy of ‘’,LF will be replaced by CRLF the next time Git touches it
原因:在Windows中的换行符为CRLF,而在linux下的换行符为LF
所以使用git来生成一个工程后,文件中的换行符为LF, 当执行git add .时,系统则提示:LF 将被转换成 CRLF
关闭git的自动更换CRLF即可
git config --global core.autocrlf false

























