本文介绍用Github+git+TortoiseGit实现Obsidian PC平台同步(后面简称Github同步方式)
如果你只有PC平台云同步的需求,这种方式可能是最好的
引言和优点
- git:是一个版本控制软件,版本控制的概念在后面有演示。
- Github:是一个存储被版本控制的文件夹的云平台,可以简单认为是其他同步方式里的OneDrive/百度云/坚果云。
- TortoiseGit:是git的图形化客户端,有了它你几乎不需要了解git复杂的概念和命令。
整个同步过程是几乎不需要命令操作的,只有在同步时需要用到两个命令git push
和git pull
(TortoiseGit支持中文操作界面)
Github同步方式的优点
自己一个人玩几乎不存在同步冲突
即使发生冲突了,也能够很好的解决
后文会讲解可能出现同步的情况和解决冲突的方法
存储空间不受限制
超过1G可能会收到Github的警告
版本控制
能够看到当前版本和上一次同步的版本之间的差异,比如
- 有哪些文件(包括文件属性)被修改了,以及文件修改的内容是什么
- 有哪些新加的文件和被删除的文件
能够回退到任意同步版本
Github同步的环境配置
git
下载
https://tortoisegit.org/download/
下面的图文以Windows平台为例
安装
下一步
选择安装路径
取消Git GUI勾选,我们用TortoiseGit作为图形界面。不取消勾选也行
之后都是下一步就行
TortoiseGit
https://tortoisegit.org/download/
下载
安装
没说到的部分点下一步就行,注意下安装位置
- 配置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
参考链接Failed to connect to github.com port 443: Connection refused问题解决_一只IT攻城狮的博客-CSDN博客
登录下面的网址,查找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里添加代理服务器配置,减少同步慢/失败的概率
参考链接: 解决Github pull, clone, push 很慢_github push 太慢 如何解决_chao3150的博客-CSDN博客
打开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