Obsidian的Git插件设置配置全流程 -- 简单的电脑端多平台同步方案及常见问
参考文章Obsidian 插件安装教程
弁言
obsidian 的一个很常见的题目就是如何同步,网上现在有很多种同步方案,我现在分享给大家我用的最多,也是比力舒服的方案
不谈配景直接说方案没有代价,我的使用场景是跨系统跨主机的条记同步,并没有手机同步的需求,手机最多使用 anki 背背卡片,工作照旧要在 pc 端举行
使用 git 在 github 上举行托管是因为从事软件行业用起来比力熟练,遇到一些常见的题目直接就解决了,还能提高使用的熟练度,本文放了一些常见的题目,如果遇到了更多的题目欢迎反馈,我会随时更新,关注不迷路
同样,如果大家有什么题目或更好的发起欢迎在下方评论或私信我,如果没有及时回复你可以在我的公众号<文件夹的知识圈>找到我
1. git 先容及安装
git 的先容在网上可以一搜一大把,简单来说 git 就是一个内容跟踪器,支持版本控制、多人开发以致还可以用来同步 obsidian 的条记
git 在各平台的安装请参考 git 官网安装 git
2. git 本地配置及远程仓库链接
[*]完成 git 安装打开终端并包管当前目次在想要同步的仓库文件夹处
对于 windows 来说,可以直接找到对应的仓库文件夹然后选中如图路径会变蓝,键入 powershell 回车即可打开如第二个图所示的终端框,注意 cmd 和 powershell 打开的终端下令不一样请用 powershell
https://img-blog.csdnimg.cn/img_convert/c2bcfafaf7012a86b4192229f1b8a7d1.png
https://img-blog.csdnimg.cn/img_convert/4521f42ab2926f723d853a1f03c0ef33.png
对于 macos 来说可以在应用处的其它里面打开终端然后通过 cd path 进入对应仓库文件夹
[*]git 在本地的配置,在终端中依次键入以下内容,注意这里的用户名和邮箱可以随意填写
git config --global user.name "abc"
git config --global user.email abc@gmail.com
[*]生成本地秘钥
输入下面的下令
ssh-keygen -t rsa -C "abc@gmail.com"
生成的过程中一直回车即可,默认的存放位置在家目次下的 .ssh 文件夹下
windows 和 mac 这一步的下令是一样的,只不过必要把 \ 改为 /,通过下面下令打印出对应 id_rsa.puh 中的公钥
cat ~\.ssh\id_rsa.pub
[*]接下来在 github 创建对应仓库(必要魔法)
在注册好 github 账号并登录成功后,会进入主页,首先创建对应的条记仓库,点击这里
https://img-blog.csdnimg.cn/img_convert/bf9fd1bad2de6a5f92d6978d22a6fa3a.png
进去以后必要填写对应的仓库名并把仓库设置成私有,如果有分享条记给其他人的需求可以设置成公开
https://img-blog.csdnimg.cn/img_convert/1370151e967690be8376a2c0c85d7871.png
完成后点击右下角的 Create repository,保持这一页面先不要关
[*]在 github 上传 3 中在终端里面看到的秘钥
首先在这个页面的右上角左键点击你的头像会出现下面的样子,然后右键点击在新标签页打开,注意不要覆盖掉当前页
https://img-blog.csdnimg.cn/img_convert/f93d3dd6f7de222248294ef5d7621aee.png
打开后按照下图依次点击
https://img-blog.csdnimg.cn/img_convert/76df0804c2e6052b876b825dc8dcfaa7.png
在新的界面处,依次填入名称、从终端中复制出来的完整秘钥并点击 Add SSH key,然后就算是添加成功了
[*]回到最开始的仓库文件夹,在对本地仓库举行设置之前另有一个准备工作要做
在仓库文件夹下也就是 .git 的统计目次下创建名为 .gitignore 文本,在里面输入以下内容
https://img-blog.csdnimg.cn/img_convert/a43133b6d780538835363b75fa21fdbf.png
这样设置的目的是不同步 obsidian 自带的 .trash 垃圾文件夹和当前工作区状态的配置文件,这个配置文件在同步的时候会经常性的出现 git 冲突,非常的恶心,如果有其它不想要同步的内容都可以加在这里面,这两个文件是不影响多端同步的,否则必要手动的同步
[*]设置本地仓库并 push 到远端仓库
对仓库的本地仓库举行设置设置的步骤为
git init
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:xxx/xxx.git
git push -u origin main
这里的 xxx/xxx.git 和上面谁人不让关闭的页面里面的下令保持一致,正常来说如果网络正常且步骤正常此时刷新刚才没有关闭的网页会发现里面有内容了,同时内容中没有 .trash 并且 .obsidian 文件夹下没有 workspace.json 的文件
3. obsidian 的 git 插件
在上述内容都完成后,就可以举行 obsidian 的插件下载和配置了,如果不出不测再也不必要打开黑乎乎的终端手动推送了,插件下载第一是在官方社区搜索 Git 对第一个举行下载启用,或者去我的公众号 <文件夹的知识圈> 发送 <插件下载> 在对应的文件夹中找到 obsidian-git 即可下载,安装教程请参考 Obsidian 插件安装教程
下载安装并且启用后不必要举行任何的设置,常用的下令就三个,首先打开对应的 obsidian 仓库,使用 ctrl/cmd + p 打开下令行,三个下令分别是 Git: commit all changes 、Git: Push 和 Git: Pull,三个下令分别对应了提交本地仓库的修改,推送本地仓库的修改到远端和从远端将修改下拉到本地,接下来会先容对应的使用场景
4. 常用的使用场景和对应的下令
4.1. 本地仓库已推送到远端,如安在另一个电脑上第一次同步
[*]首先必要完成 3 中的 1~5,也就是直到完成将本地公钥在 github 仓库上为止
[*]在网页打开你对应的仓库,按照下面的步骤依次点击直到末了一步复制成功
https://img-blog.csdnimg.cn/img_convert/91223e6af34f34e55581661b36b7774e.png
[*]参考 3 中对应的步骤打开你想要存放文件的上层目次
为什么说是上层目次呢,因为从远端 clone 下来的是一个文件夹,比如说你的仓库名为 note,你想把它存到 Document 目次下,你就必要打开 Document 下的终端,等完成后 Document 下就是你对应的 note 文件夹
[*]在终端中键入下令 git clone xxx xxx 就是步骤 2 中复制的内容,然后回车就可以从远端下拉下来了
[*]如果是正常按照步骤一下一下来的,那么恭喜你已经完成了同步的第一个任务,尝试用 obsidian 打开对应的仓库吧~
4.2 多端同步流程
一个正常的同步流程就是,一个电脑产生了修改,然后另一个电脑想要同步这个修改,只必要参照下面的步骤即可
[*]在发生修改了的仓库下通过 ctrl/cmd + p 打开下令行,键入 Git: Commit all changes,在右上角会闪过如下图
https://img-blog.csdnimg.cn/img_convert/272a1beb16dea4f6ef6538faa4e5c9c9.png
[*]如果另一个电脑也有修改并且曾经 push 到过远端仓库,也就是现在本地仓库的内容落后于远端仓库,必要先在下令行键入 Git: Pull 把本地仓库和远端同步一下,会在右上角看到 pull 多少文件下来或者 everything is updated 的字样
[*]接下来再在本地的 git 中通过 Git: Push 将本地的修改推送到远端即可
5. 可能出现的题目(随时更新)
5.1 push 或 pull 以后长时间没反应然后说网络错误
由于 github 必要魔法,以是在所有和 github 互动的操纵中都必要保持魔法
5.2 Failed to connect to github.com port 443 after 21090 ms: Couldn’t connect to server
此种情况出现在可以正常访问 github 但是无法正常的 push 和 pull,解决流程为
[*]查看本机系统端标语
[*]mac:设置中搜索署理,可以看到服务器号为 127.0.0.1 端标语为 7890
[*]windows:设置 -> 网络和 Internet -> 署理
[*]设置 git 端标语和上面端标语保持一致
git config --global http.proxy 127.0.0.1:7890
git config --global https.proxy 127.0.0.1:7890
5.3 使用 git push 时先是邮箱和用户名不正确
这阐明之前已经生成过秘钥了,以是再在本地配置的时候不会产生覆盖,打开对应的 id_rsa.pub 文件查看真是的用户名和邮箱是什么然后使用下面下令举行全局修改即可,其中第一个 xxx 是用户名,第二个是邮箱
git config --global user.name "xxx"
git config --global user.email xxx
5.4 ssh: connect to host github.com port 22: Connection timed out
[*]检查 github.com 是否可以正常访问
[*]22 端口可能被屏蔽了,可以尝试毗连 Github 的 443 端口
$ vim ~/.ssh/config
```
# Add section below to it
Host github.com
Hostname ssh.github.com
Port 443
```
$ ssh -T git@github.com
Hi xxxxx! You've successfully authenticated, but GitHub does not
provide shell access.
这个方案有效的条件是:执行下令 ssh -T -p 443 git@ssh.github.com 后不再提示 connection refused
如果照旧出现题目,可以通过
$ ssh -vT git@github.com
查看建立 ssh 毗连的过程中发生了什么,这个下令会打出具体日志
输出的日志中会显示,毗连的是 Github 的哪个 ip 和哪个端口,如果 ip 可以通过网页访问正常打开,并且端口也是 443 就不会有题目了
5.5 在 github 上创建仓库后访问,出现了访问被拒绝的题目
首先题目并不是 id_rsa_pub 的题目,因为这个已经正常添加到了仓库中,没有题目
题目是在新建仓库的时候手动添加了一个 readme,以是导致远程仓库和本地要提交的仓库结构不统一,没有雷同的历史节点,以是提交被拒绝,解决办法如下
[*]合并两个没有共同历史节点的分支
git pull origin main --allow-unrelated-histories
[*]合并的时候出现题目
Your local changes to the following files would be overwritten by merge: .idea/vcs.xml
表明本地有修改未 commit,先 commit 即可
[*]合并后手动处置惩罚冲突文件,然后使用 git push origin main 即可
5.6 git add 时出现错误 error: "helloworld/ " does not have a commit checked out fatal: adding files failed
阐明在 helloword 的子目次中存在.git 文件,删除或者压缩成压缩包即可
5.7 同步时出现 error
error: invalid object 100644 b15902813faa5292b67e974406facf6e5f1f06c5 for 'xx.md'
error: invalid object 100644 b15902813faa5292b67e974406facf6e5f1f06c5 for 'xx.md'
error: Error building trees
解决步骤如下
[*]git rm --cached 'xx.md' 注意 windows 必要使用双引号
[*]git add 'xx.md'
然后就可以正常 commit 和 push 了
5.8 新下载的 git 在 clone 时卡在 receiving objects 不动
切换 git 使用的内置 ssh.exe
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
5.9 最严峻的题目是 git 文件损坏
这个时候必要包管远端仓库是正确的,将本地仓库的修改单独拿出来,然后 clone 远端仓库,再将修改手动添加回去,可以是一段一段加,也可以是直接一个把修改过的 md 文件复制过来
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]