Obsidian笔记通过Git同步PC和安卓端.md · Obsidian 您所在的位置:网站首页 Gitee手机客户端不能登录 Obsidian笔记通过Git同步PC和安卓端.md · Obsidian

Obsidian笔记通过Git同步PC和安卓端.md · Obsidian

2023-11-22 14:05| 来源: 网络整理| 查看: 265

Obsidian笔记通过Git同步PC和安卓端 实现效果评价 优势 免费 PC端使用体验良好 劣势 使用不当容易造成git版本冲突,需要解决git冲突。 手机端同步需要借助其他app。Obsidian git 插件手机端无法使用导致的。 仓库存储大小有上限 github仓库:单文件不大于100M,大于50M的单文件会被github发警告邮件。建议大小小于1G,强烈建议不大于5G。好像可以大于1G!没有测试。如果访问gihtub网络环境通畅,推荐使用。 gitlab仓库:10G,没有单文件大小限制(未测试)。如果访问gitlab网络通畅,推荐使用。 gitee仓库:免费隐私仓库大小是500M,公开仓库是1G。单文件大小不大于100M。

参考资料: About large files on GitHub - GitHub Docs 结论:不能大于100M. GitLab.com storage limit raised to 10GB per repo | GitLab结论:单仓库10G,没有限制单文件大小(未测试) Gitee 使用配额说明 - Gitee.com Gitee企业版和社区版服务对比 - Gitee.com 结论:公开仓库1G,私有仓库500M

Obsidian 简介

免费的本地笔记软件。 功能特性:

本地存储,数据安全完全由自己把控。(但是大家也要注意做好笔记备份,避免硬件问题导致笔记丢失) Markdown文件为主要笔记载体 双向链接,建立笔记关系 支持大纲笔记用法 丰富的插件满足大多数使用需求 良好的社区氛围和发展状况 Obsidian同步方法 官方提供的多端(PC,移动端)同步。需要付费成本高。 通过第三方网盘同步,推荐使用这种方式。只要网盘支持文件夹同步,设定好同步的文件夹就好。(比如坚果云) 通过互联网上的git仓库同步。可以使用github,gitlab,gitee,或者自己用gitlab搭建一个公网的git仓库。

本文主要是讲解通过方式3,利用gitee进行PC和安卓端同步Ob笔记内容。

需要的知识点git(如果已经会使用git跳过本标题内容) 够用就行的精简版git介绍 git简介

git是一个分布式版本控制系统。 版本控制系统:如果我们写文章,写需求,写代码或者其他类似文件编辑时,希望可以记录我们每次劳动成果每个小阶段的变动,并且当我们想使用历史修改的某个版本,可以实现快速回退。这些需求都可以通过版本控制系统来实现。 分布式:支持多台设备都可以记录完整的历史记录信息(相对应的是集中式版本控制系统:例如SVN)。

一般用于文档类的版本控制,git自带的文本内容比对功能可以轻松对比指定某两个版本的内容变动。git也可以用于Excel,图片,音频,视频的版本控制,只不过没有像文档类比对出文字内容变动这么优秀。

git基础知识点

git仓库:git会记录被其监管的文件当前状态和历史信息,需要一个文件夹进行存储这些信息,这个文件夹就是git仓库。

git仓库跟Ob仓库概念一致,一般一个(笔记)项目一个仓库。

分支:分支管理 - 廖雪峰的官方网站对于只是使用git的笔记同步需求并且git知识不深入时,推荐只使用1个分支就够了。

git本地仓库和远程仓库:git是分布式的版本控制,仓库也是分布式的,有我们本地编辑的仓库也有远程仓库(远程仓库不是必须的)。我们本文介绍的通过gitee去同步笔记,就是把gitee提供的git远程仓库服务作为我们多设备同步仓库内容的中转站。例如:设备A修改了内容,提交到gitee远程仓库,设备B可以拉取gitee远程仓库内容,获取到设备A的修改内容,实现了笔记内容的同步。

.gitignore配置文件: 有时候我们不希望我们仓库里的所有文件都被git进行版本管理,希望进行忽略。举例来讲:对于Ob软件来说,每个笔记仓库的配置文件.Obsidian文件夹包含有过多自己自定义的设置,我只想分享笔记内容,不想把这些配置进行版本控制,那么可以用过配置.gitignore文件让git来忽略哪些文件不被git进行版本控制。

这个单词构成是git+ignore,ignore英文含义是忽略,佯装未见。所以完整含义就是git会忽略事儿而不见的文件

提交当前修改到(本地+远程)仓库:我们在写笔记时感觉完工了,可以进行保存提交到仓库了。仓库分为本地仓库和远程仓库,本文使用到的gitee远程仓库。一般流程是先把修改内容提交本地仓库(英文:commit,在git里是指把当前待确认提交的内容,进行确认提交到本地仓库),之后推送(英文:push,在git里表示把本地修改内容推送到远程仓库)到远程仓库,PC端的Ob的Obsidian git插件可以同时提交本地和推送远程仓库。

拉取远程仓库到本地:(英文pull)将远程仓库的内容拉取到本地,实现本地内容的更新。

我是学霸我要学好git

git的基础知识,推荐廖雪峰的官方博客的 git教程。Git教程 - 廖雪峰的官方网站 好好学,学完就比我懂得都多了!

正式开工 PC端 笔记仓库初始化?? Git安装

安装Git - 廖雪峰的官方网站

生成git公钥

运行 ![[Pasted image 20211226232208.png]]

执行以下命令,邮箱部分可以使用自己将要注册gitee的邮箱,乱写也可以,没有强制需求。

## 复制下面这行按下回车执行 $ ssh-keygen -t ed25519 -C "[email protected]" Generating public/private ed25519 key pair. Enter file in which to save the key (/c/Users/Administrator/.ssh/id_ed25519): /c/Users/Administrator/.ssh/id_ed25519 already exists. # 因为我之前有这个文件,这里提示是否覆盖,如果有的话就可以输入n 回车。 取消覆盖 Overwrite (y/n)? y # 回车,除非保密性要求很高,否则不建议输入密码 Enter passphrase (empty for no passphrase): # 输入上一步的密码 回车。如果是直接回车的,这里也直接回车。 Enter same passphrase again: Your identification has been saved in /c/Users/Administrator/.ssh/id_ed25519. Your public key has been saved in /c/Users/Administrator/.ssh/id_ed25519.pub. The key fingerprint is: SHA256:/EaKx2LH1fZiVBIABRPaHO7sN1dtyMVSJVU82+2q7Mo [email protected] The key's randomart image is: +--[ED25519 256]--+ | *=o.. .oB| | = o . =.| | . + . o B| | + . + *o| | S o + +.o| | = = o o ..| | + B = + .. | | . + + = .. | | Eo+. | +----[SHA256]-----+` ## 复制下面这行按下回车执行 $ cat ~/.ssh/id_ed25519.pub # 复制下面内容 ssh-ed25519 AAAAC3NzaC1lZDIxxxxxxxxxxxxxxxxxxxxxx [email protected] gitee 注册 仓库创建

注册登陆成功后,右上角点击头像左边的加号图标,再弹出菜单里点击新建仓库 ![[Pasted image 20211226174002.png]] 进入如下界面,设置

仓库名称,一般跟自己Obsidian笔记库的文件夹名一致就好。下面路径如果没有特殊需求默认会同步为仓库名称。 仓库介绍 非必填,根据自己需求填写。 仓库地址:根据你的账号名+仓库路径拼接而成。 仓库类型:创建之后这个属性也可以修改。 开源:公开仓库内容,任何人可以通过仓库地址可以获取你的仓库内容。使用场景:仓库内容想公开,分享给他人使用。 私有:只有自己和自己指认的部分成员可以获取仓库内容。使用场景:如果仓库内容指向自己查看使用。 确认无误后,点击创建

下面三个选项非必须设置,如果不懂推荐不必设置。

![[Pasted image 20211226173828.png]]

查看仓库

网站右上角点击头像,下拉选择个人主页 ![[Pasted image 20211226173928.png]]

点击下面截图下方截图上方红框仓库或者下方动态里的地址直接进入仓库。 ![[Pasted image 20211226175221.png]] 点击仓库后,还需要再点击一次下方红框仓库地址,才能进入仓库 ![[Pasted image 20211226175354.png]] 进入仓库后,先点击SSH按钮,之后点击右边复制图标按钮,获得我们仓库地址。找个地方记录下或者回头我们再来拷贝地址也OK。

本文演示仓库地址: [email protected]:obsidian-notes/obsidian-notes.git

![[Pasted image 20211230231211.png]]

配置gitee 公钥 点击右上角网站头像,点击设置 ![[Pasted image 20211226233112.png]] 在左侧菜单找到SSH公钥 ![[Pasted image 20211226233206.png]] 在右侧标题写下当前要添加的公钥标题,随便写,自己看的明白就行 公钥部分,贴入刚才复制的一串文本,结尾是你填写的邮箱。 ![[Pasted image 20211226233335.png]] 之后需要输入gitee密码进行确认 ![[Pasted image 20211226233709.png]] Obsidian笔记文件夹添加.gitignore文件

如果你的笔记库里有不希望放到远程仓库上的内容,可以通过添加配置.gitignore文件来实现。 举例:我不想同步我笔记仓库里的 .obsidian。(强烈推荐不同步这个文件夹,避免git拉取合并时冲突!) 在我的笔记库文件夹下,添加.gitignore文件,注意前面有一个英文点。然后用任意文本编辑器打开编辑这个文件。在里面写入不想git版本控制的文件名或者文件夹名称,编辑好后,保存退出。

.obsidian

![[Pasted image 20211226180430.png]]

注意 .gitignore文件路径,只能在笔记文件夹顶级文件夹下。比如我的Obsidian笔记仓库地址是: C:\workspace\ObsidianData\Obsidian-notes 那么我的 .gitignore文件完整路径就必须是 C:\workspace\ObsidianData\Obsidian-notes.gitignore 否则.gitignore的配置不会生效。

==.gitignore用法入门==

# 井号后面是注释,下图Obsidian仓库根目录是 Obsidian-notes。`.gitignore`文件在 Obsidian-notes下 # 每个规则一行 # 不想对 .obsidian文件夹下的app.json 文件使用git版本控制 .obsidian/app.json # 不想对 mp4 类型文件使用版本控制. *这里是通配符,表示匹配所有内容。 *.mp4表示 匹配所有后缀是.mp4的文件 *.mp4 # 不想文件夹 .obsidian文件夹下的plugins进行git版本控制,但是想对里面的 calendar 文件夹使用git版本控制 # 先忽略整个文件夹.obsidian/plugins,再用 英文叹号!强制指定需要同步的文件夹或文件 .obsidian/plugins !.obsidian/plugins/calendar

![[Pasted image 20211226181154.png]]

.gitignore资料 忽略特殊文件 - 廖雪峰的官方网站 .gitignore 文件用法_一土宁的博客-CSDN博客_gitignore 英文资料: .gitignore 官方文档介绍

Obsidian git插件 插件安装

需要安装的插件名称: Obsidian git 推荐Ob插件安装教程:如何安装插件?【玩转Obsidian的保姆级教程】 - 知乎

Obsidian git配置

点击Obsidian左下角齿轮图标,打开Obsidian设置,左侧菜单下滑找到 Obsidian git插件,点击 ![[Pasted image 20211230221157.png]] 配置界面介绍

Vault backup interval (minutes) :间隔多少分钟进行自动提交本地修改并推送到远程仓库。默认是0不开启。填入正数可以开启。个人不推荐,因为会有较多不成熟的版本内容推送。如果不怕有太多次提交信息可以开启。 if tunred on...... 如果开启将修改配置1的效果从固定时间周期触发,改为最后一次编辑后过了配置1填写的时间后,进行保存。如果使用配置1的效果,推荐开启配置2. Auto pull interval(minutes):间隔多少分钟进行自动拉取远程仓库内容。默认0不开启,填入正数可以开启。 Commit message:提交信息模板,即每次修改提交到本地的提交信息内容。里面用到了一个{{date}}会被提交时间替换掉。默认提交模板是英文的,可以根据自己需求修改 vault backup:替换为别的内容。{{hostname}}一个可配置的变量,可以根据自己需求去下配置6中进行行配置。本次示例填写内容为:{{hostname}} vault backup: {{date}} {{date}} placeholder format:修改{{date}}日期时间格式,默认的一般就够用了。 {{hostname}} placeholder replacement:配置后,如果在配置4中配置了含有{{hostname}},实际提交信息时会替换为配置6填写的信息。 Preview commit messge:预览配置的默认提交信息样式,会在笔记软件右上角弹出提示

![[Pasted image 20211230223251.png]] home pc 来源于 {{hostname}} valut backup: 来源于固定的文本信息 2021-12-30 22:32:41 来源于`{{date}}``

List filename affected by commit in the commit body:提交信息含有每次变动文件的列表信息。没需求的话不推荐开启。 Current branc:当前分支,前文提到了,git使用不熟悉的话,推荐就用一个分支。如果有多个分支,这里可以选择使用某个分支。注意多分分支时,本地提交和推送到远程也是使用的当前这一个分支。萌新如果有多个分支推送远程,另一个客户端拉取不到最新修改,请注意这里是否多端客户端使用的是同一个分支。 Pull updates on startup:每次Obisidian软件启动时,自动拉取远程仓库内容。推荐开启! Disable push:禁用推送到远程仓库。一般不开启。否则没法把本地内容推送到远程仓库了。 Pull changes before push:推送到远程仓库前先拉取远程仓库内容之后,再推送。推荐开启! Update submodules:更新git子模块。推荐关闭。 git的高级复杂用法,推荐阅读了解:git submodule 实用教程 - 简书 Disable notifications:禁用通知,一般都需要开启,默认就是关闭的有通知效果。推荐关闭。 Show status bar:在Obsidian底部状态栏显示 git 状态条。根据需求选择是否开启。 Custom Git binary path:手动设置git命令行路径地址。只要安装git成功,一般默认不用去配置。 命令行翻译

Obsidian 按Ctrl+p 打开命令行,输入下面英文部分单词,过滤出想使用的命令,用键盘箭头+回车或者鼠标点击选中想使用的命令进行执行。

 Create Backup: Commits all changes and pushes them depending on your setting whether to push on backup or not   提交本地所有更改到本地仓库,并推送改动到远程仓库 。如果没开启自动提交推送功能,这个命令很常用。  Create Backup with specific message: Same as above, but with a custom message   功能同1,只不过手动定制本次提交推送信息。  Commit all changes: Only commits all changes without pushing    提交本地所有修改到本地仓库,不进行推送到远程仓库。  Commit all changes with specific message: Same as above, but with a custom message  功能同3,只不过手动定制本次提交推送信息。  Push    把本地提交过的内容推送到远程仓库。命令3+命令5=命令1;命令4+命令5=命令2;  Pull    拉取远程仓库内容到本地仓库。如果手机端推送新的内容到远程仓库,Obsidian没有重启(重启Obsidian git插件会自动pull)时使用。  List changed files: Lists all changes in a modal    列出本地当前增删改过的的文件  Edit remotes and Remove remote  有编辑和移除远程仓库。这是分别两个命令  Initialize a new repo 把当前Obsidian笔记仓库初始化。当新仓库没有.git文件夹,首次需要初始化生成 Clone an existing remote repo   通过远程git仓库url地址拷贝仓库内容 Open Source Control View:开启git视图(推荐开启) ![[Pasted image 20211226192924.png]] 开启后会在右侧菜单面板里出现Obsidian git 插件的面板。推荐开启 ![[Pasted image 20211226193007.png]] 初始化当前笔记仓库 按快捷键Ctrl+p :输入init,找到 Obsidian git:initialize a new repo 命令,选中并执行 ![[Pasted image 20211226193856.png]] 执行成功后,右上角会有 Initialized new repo 提示。 ![[Pasted image 20211226193952.png]] 如果之前打开了 Obisidian Git 右侧的视图面板,会看到一堆新增的文件列表。由于之前设置了.gitignore文件忽略掉.obsidian 文件夹,所以这里不会有。 ![[Pasted image 20211226194051.png]] 提交本地内容修改到本地git仓库

Ctrl+P打开命令窗口,输入commit 选中执行 Obsidian Git:Commit all changes

![[Pasted image 20211230230605.png]]

配置gitee远程仓库 按快捷键Ctrl+p :输入 remotes,选中Obsidian Git:Edit remotes ![[Pasted image 20211226194329.png]] 给远程仓库起个名字,大家根据自己需求写。不要用空格!可以是中文。回车确认。 ![[Pasted image 20211226194801.png]] 输入远程仓库地址,结尾一般是.git,回车确认。 ![[Pasted image 20211230230825.png]] git新手第一次推送到远程仓库指南 如果是第一次推送远程仓库,由于当前Obsidian git插件版本(版本1.19.0)不能自动把本地master分支推送到没有master分支的远程空仓库,我们需要借助git gui 来实现第一次推送,实现把本地的 master 分支推送到远程并创建 master分支。本流程仅需走一次,之后就用Obsidian git插件就可以了。(当然git 熟练用户可以用sourceTree或者git命令解决,我就不班门弄斧的介绍了) 开始前,请确认以下前提都已完成 [[Obsidian笔记通过Git同步PC和安卓端#生成git公钥]] [[Obsidian笔记通过Git同步PC和安卓端#配置gitee 公钥]] [[Obsidian笔记通过Git同步PC和安卓端#初始化当前笔记仓库]] [[Obsidian笔记通过Git同步PC和安卓端#配置gitee远程仓库]] 提交本地内容修改到本地git仓库 Ctrl+P打开命令窗口,输入commit 选中执行 Obsidian Git:Commit all changes。这一步是为了把当前本地的修改内容提交到本地git仓库保存。

![[Pasted image 20211230230605.png]]

我们在通过右键Ob仓库笔记里的一个根目录下的文件,选择 在系统资源管理器中显示 菜单。将会打开我们的目标路径文件夹。确定打开的目录可以看到 .git 文件夹和 .obsidian 文件夹。

如果没有.git文件夹,应该是git初始化当前笔记仓库失败了,重新走下流程[[Obsidian笔记通过Git同步PC和安卓端#初始化当前笔记仓库]]

![[Pasted image 20211230230132.png]] 然后在打开的文件夹空白处,右键单击,选择菜单 Git GUI Here。git 高手可以去Git Bash here。 ![[Pasted image 20211230224206.png]] 在弹出的界面的右下角填写本次修改提交信息,随便写。之后点击左边 Push 按钮 如果本地还有没有提交修改的内容可能会如下图右上方窗口有内容。如果你的界面右上角没有内容,是正常的,不用在意这些细节。 ![[Pasted image 20211230224342.png]] 又弹出如下界面,我们继续点击Push ![[Pasted image 20211230224414.png]] 等待Push推送完成,点击Close ![[Pasted image 20211230224430.png]] 查看gitee远程仓库地址,已经推送成功。 ![[Pasted image 20211230224459.png]] 我们回到Ob,Ctrl+P输入 push,选择执行命令Obsidian Git:Push ![[Pasted image 20211230233715.png]] 选择之前在Obsidian git插件里创建的远程仓库名 ![[Pasted image 20211230233829.png]] 选择刚才通过 git gui创建的远程仓库分支 ![[Pasted image 20211230233822.png]] 至此,我们麻烦的Obsidian git配置算是彻底完事了。 提交本地修改到本地git仓库并推送到远程仓库(常用) 提交本地变动到本地仓库,并推送到远程仓库 Ctrl+p:输入 back ,选中 Obsidian Git: Create backup ![[Pasted image 20211226195807.png]] 出现下图表示,本地有2个文件被修改,成功提交到本地git仓库里了 ![[Pasted image 20211230234233.png]] 出现下图表示,成功把2个文件推送到远程仓库了。 ![[Pasted image 20211230234241.png]] 更新远程仓库内容 直接重启Ob,Obsidian git插件我们之前配置后,会自动更新远程仓库 ctrl+p,输入pull,选中执行菜单Obsidian Git:Pull 笔记冲突

当我们在多个终端。再终端A修改一个文件,终端B也修改这个文件。之后终端B推送修改到远程仓库。终端A拉取更新远程仓库时,A本地修改的内容可能会跟B端提交的修改内容冲突。对于git新手用户这个比较麻烦。为了避免git版本冲突问题,给出以下几个建议

冲突的前提是,多端设备没有及时推送到远程仓库,另一端设备也没有更新最新远程仓库,就进行编辑修改导致。所以可以考虑开启Obsdian git自动同步推送到远程以及自动定时pull拉取远程仓库变动。即插件配置的第一项(第2项可选)和第3项 如果是多端设备有手机设备。如果手机设备上Ob写入场景少,推荐单独建立一个文件夹或笔记文件,专门用于记录手机端的书写内容。PC端如果不得不要修改这些专门用于手机记录的笔记文件,那就先更新最新的远程仓库内容,再把修改推送到远程仓库,手机端之后pull拉取更新就好。 冲突总是难免的,如果真遇到冲突了,那我们就去解决它! #TODO 手机端 Ob软件安装配置仓库 手机端git软件 安装配置本地Ob笔记仓库 配置gitee远程仓库 手动拉取仓库 手动提交推送仓库


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有