Obsidian的Git插件设置配置全流程 -- 简单的电脑端多平台同步方案及常见问题

Obsidian的Git插件设置配置全流程 -- 简单的电脑端多平台同步方案及常见问题

    • 参考文章
    • 引言
    • 1. git 介绍及安装
    • 2. git 本地配置及远程仓库链接
    • 3. obsidian 的 git 插件
    • 4. 常用的使用场景和对应的命令
      • 4.1. 本地仓库已推送到远端,如何在另一个电脑上第一次同步
      • 4.2 多端同步流程
    • 5. 可能出现的问题(随时更新)
      • 5.1 push 或 pull 以后长时间没反应然后说网络错误
      • 5.2 Failed to connect to github.com port 443 after 21090 ms: Couldn't connect to server
      • 5.3 使用 git push 时先是邮箱和用户名不正确
      • 5.4 ssh: connect to host github.com port 22: Connection timed out
      • 5.5 在 github 上创建仓库后访问,出现了访问被拒绝的问题
      • 5.6 git add 时出现错误 error: "helloworld/ " does not have a commit checked out fatal: adding files failed
      • 5.7 同步时出现 error
      • 5.8 新下载的 git 在 clone 时卡在 receiving objects 不动
      • 5.9 最严重的问题是 git 文件损坏

参考文章

Obsidian 插件安装教程

引言

obsidian 的一个很常见的问题就是如何同步,网上现在有很多种同步方案,我现在分享给大家我用的最多,也是比较舒服的方案

不谈背景直接说方案没有价值,我的使用场景是跨系统跨主机的笔记同步,并没有手机同步的需求,手机最多使用 anki 背背卡片,工作还是要在 pc 端进行

使用 git 在 github 上进行托管是因为从事软件行业用起来比较熟练,遇到一些常见的问题直接就解决了,还能提高使用的熟练度,本文放了一些常见的问题,如果遇到了更多的问题欢迎反馈,我会随时更新,关注不迷路

同样,如果大家有什么问题或更好的建议欢迎在下方评论或私信我,如果没有及时回复你可以在我的公众号<文件夹的知识圈>找到我

1. git 介绍及安装

git 的介绍在网上可以一搜一大把,简单来说 git 就是一个内容跟踪器,支持版本控制、多人开发甚至还可以用来同步 obsidian 的笔记

git 在各平台的安装请参考 git 官网安装 git

2. git 本地配置及远程仓库链接

  1. 完成 git 安装打开终端并保证当前目录在想要同步的仓库文件夹处

对于 windows 来说,可以直接找到对应的仓库文件夹然后选中如图路径会变蓝,键入 powershell 回车即可打开如第二个图所示的终端框,注意 cmd 和 powershell 打开的终端命令不一样请用 powershell

image.png

image.png

对于 macos 来说可以在应用处的其它里面打开终端然后通过 cd path 进入对应仓库文件夹

  1. git 在本地的配置,在终端中依次键入以下内容,注意这里的用户名和邮箱可以随意填写
git config --global user.name "abc"
git config --global user.email abc@gmail.com
  1. 生成本地秘钥

输入下面的命令

ssh-keygen -t rsa -C "abc@gmail.com"

生成的过程中一直回车即可,默认的存放位置在家目录下的 .ssh 文件夹下

windows 和 mac 这一步的命令是一样的,只不过需要把 \ 改为 /,通过下面命令打印出对应 id_rsa.puh 中的公钥

cat ~\.ssh\id_rsa.pub
  1. 接下来在 github 创建对应仓库(需要魔法)

在注册好 github 账号并登录成功后,会进入主页,首先创建对应的笔记仓库,点击这里

image.png

进去以后需要填写对应的仓库名并把仓库设置成私有,如果有分享笔记给其他人的需求可以设置成公开

image.png

完成后点击右下角的 Create repository,保持这一页面先不要关

  1. 在 github 上传 3 中在终端里面看到的秘钥

首先在这个页面的右上角左键点击你的头像会出现下面的样子,然后右键点击在新标签页打开,注意不要覆盖掉当前页

image.png

打开后按照下图依次点击

image.png

在新的界面处,依次填入名称、从终端中复制出来的完整秘钥并点击 Add SSH key,然后就算是添加成功了

  1. 回到最开始的仓库文件夹,在对本地仓库进行设置之前还有一个准备工作要做

在仓库文件夹下也就是 .git 的统计目录下创建名为 .gitignore 文本,在里面输入以下内容

这样设置的目的是不同步 obsidian 自带的 .trash 垃圾文件夹和当前工作区状态的配置文件,这个配置文件在同步的时候会经常性的出现 git 冲突,非常的恶心,如果有其它不想要同步的内容都可以加在这里面,这两个文件是不影响多端同步的,否则需要手动的同步

  1. 设置本地仓库并 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 changesGit: PushGit: Pull,三个命令分别对应了提交本地仓库的修改,推送本地仓库的修改到远端和从远端将修改下拉到本地,接下来会介绍对应的使用场景

4. 常用的使用场景和对应的命令

4.1. 本地仓库已推送到远端,如何在另一个电脑上第一次同步

  1. 首先需要完成 3 中的 1~5,也就是直到完成将本地公钥在 github 仓库上为止
  2. 在网页打开你对应的仓库,按照下面的步骤依次点击直到最后一步复制成功

image.png

  1. 参考 3 中对应的步骤打开你想要存放文件的上层目录

为什么说是上层目录呢,因为从远端 clone 下来的是一个文件夹,比如说你的仓库名为 note,你想把它存到 Document 目录下,你就需要打开 Document 下的终端,等完成后 Document 下就是你对应的 note 文件夹

  1. 在终端中键入命令 git clone xxx xxx 就是步骤 2 中复制的内容,然后回车就可以从远端下拉下来了
  2. 如果是正常按照步骤一下一下来的,那么恭喜你已经完成了同步的第一个任务,尝试用 obsidian 打开对应的仓库吧~

4.2 多端同步流程

一个正常的同步流程就是,一个电脑产生了修改,然后另一个电脑想要同步这个修改,只需要参照下面的步骤即可

  1. 在发生修改了的仓库下通过 ctrl/cmd + p 打开命令行,键入 Git: Commit all changes,在右上角会闪过如下图

image.png

  1. 如果另一个电脑也有修改并且曾经 push 到过远端仓库,也就是现在本地仓库的内容落后于远端仓库,需要先在命令行键入 Git: Pull 把本地仓库和远端同步一下,会在右上角看到 pull 多少文件下来或者 everything is updated 的字样
  2. 接下来再在本地的 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,解决流程为

  1. 查看本机系统端口号
    1. mac:设置中搜索代理,可以看到服务器号为 127.0.0.1 端口号为 7890
    2. windows:设置 -> 网络和 Internet -> 代理
  2. 设置 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

  1. 检查 github.com 是否可以正常访问
  2. 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,所以导致远程仓库和本地要提交的仓库结构不统一,没有相同的历史节点,所以提交被拒绝,解决办法如下

  1. 合并两个没有共同历史节点的分支

git pull origin main --allow-unrelated-histories

  1. 合并的时候出现问题
Your local changes to the following files would be overwritten by merge: .idea/vcs.xml

表明本地有修改未 commit,先 commit 即可

  1. 合并后手动处理冲突文件,然后使用 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

解决步骤如下

  1. git rm --cached 'xx.md' 注意 windows 需要使用双引号
  2. 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 文件复制过来

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/912889.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【优选算法篇】微位至简,数之恢宏——解构 C++ 位运算中的理与美

文章目录 C 位运算详解&#xff1a;基础题解与思维分析前言第一章&#xff1a;位运算基础应用1.1 判断字符是否唯一&#xff08;easy&#xff09;解法&#xff08;位图的思想&#xff09;C 代码实现易错点提示时间复杂度和空间复杂度 1.2 丢失的数字&#xff08;easy&#xff0…

Redis(3):持久化

一、Redis高可用概述 在介绍Redis高可用之前&#xff0c;先说明一下在Redis的语境中高可用的含义。   我们知道&#xff0c;在web服务器中&#xff0c;高可用是指服务器可以正常访问的时间&#xff0c;衡量的标准是在多长时间内可以提供正常服务&#xff08;99.9%、99.99%、9…

高亚科技签约酸动力,助力研发管理数字化升级

近日&#xff0c;中国企业管理软件资深服务商高亚科技与广东酸动力生物科技有限公司&#xff08;以下简称“酸动力”&#xff09;正式签署合作协议。借助高亚科技的8Manage PM项目管理软件&#xff0c;酸动力将进一步优化项目过程跟踪与节点监控&#xff0c;提升研发成果的高效…

大模型领域最值得看的 9 本新书,找到了

在人工智能革命的浪潮中&#xff0c;程序员们正站在技术变革的最前沿。本书单精选了关于人工智能在各行业应用的最新著作&#xff0c;从医疗诊断到金融风控&#xff0c;从智能制造到智慧城市&#xff0c;全面展现AI如何重塑行业生态&#xff0c;推动社会进步。通过阅读这些书籍…

加入GitHub Spark需要申请

目录 加入GitHub Spark需要申请 GitHub Spark 一、产品定位与特点 二、核心组件与功能 三、支持的AI模型 四、应用场景与示例 五、未来展望 六、申请体验 加入GitHub Spark需要申请 GitHub Spark 是微软旗下GitHub在2024年10月30日的GitHub Universe大会上推出的一款革…

Rust移动开发:Rust在iOS端集成使用介绍

iOS调用Rust 上篇介绍了 Rust移动开发&#xff1a;Rust在Android端集成使用介绍, 这篇主要看下iOS上如何使用Rust&#xff0c;Rust可以给移动端开发提供跨平台&#xff0c;通用组件支持。 该篇适合对iOS、Rust了解&#xff0c;想知道如何整合调用和编译的&#xff0c;如果想要…

【月之暗面kimi-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …

2024 CSS保姆级教程四

CSS中的动画 CSS动画&#xff08;CSS Animations&#xff09;是为层叠样式表建议的允许可扩展标记语言&#xff08;XML&#xff09;元素使用CSS的动画的模块​ 即指元素从一种样式逐渐过渡为另一种样式的过程​ 常见的动画效果有很多&#xff0c;如平移、旋转、缩放等等&#…

[C++11] Lambda 表达式

lambda 表达式&#xff08;Lambda Expressions&#xff09;作为一种匿名函数&#xff0c;为开发者提供了简洁、灵活的函数定义方式。相比传统的函数指针和仿函数&#xff0c;lambda 表达式在简化代码结构、提升代码可读性和编程效率方面表现出色。 Lambda 表达式的基本语法 在…

AI4SCIENSE(鄂维南院士:再谈AI for Science)

鄂维南院士&#xff1a;再谈AI for Science_哔哩哔哩_bilibili 以往处理高维问题 量子力学&#xff1a;单变量乘积 统计学&#xff1a;旋转 AI4S 处理数据 蛋白质折叠&#xff1f; 不是纯粹的数据驱动 物理学等学科基本原理 例&#xff1a;分子动力学 数据模型 流程图 这…

接收nVisual中rabbitmq数据不成功问题排查

rabbitmq服务部署成功的情况下&#xff0c;消息对接不成功一般原因为消息发送失败&#xff0c;发送失败大多数可能为global_settings表配置错误。下面从两个方面解决消息对接不成功问题。 1.数据是否成功发送 检查global_settings表中rabbitmq发送消息配置信息是否正确 #MQS…

SpringBoot框架学习总结 及 整合 JDBC Mybatis-plus JPA Redis 我的学习笔记

SpringBoot框架学习总结 及 整合 JDBC Mybatis-plus JPA Redis 我的学习笔记 一、SpringBoot概述二、创建SpringBoot程序1. 使用maven方式创构建2. 使用Spring Initializr构建3. SpringBoot热部署4. SpringBoot的跨域处理 三、基础配置1.配置文件的作用2.配置文件格式2.yaml3.S…

【AIGC】如何通过ChatGPT轻松制作个性化GPTs应用

创建个性化的GPTs应用是一个涉及技术、设计和用户体验的过程。以下是详细步骤&#xff1a; ###1.确定应用目标和用户群体 在开始之前&#xff0c;你需要明确你的应用的目标和目标用户。这将帮助你在设计、开发和个性化方面做出相应的决策。例如&#xff0c;如果你的应用是为了…

strtok函数详解

strtok函数 strtok 函数是一个字符串分割函数&#xff0c;用于将字符串分割成一系列的标记。这个函数通过一组分隔符字符来确定标记的边界&#xff0c;每次调用都会返回字符串中的下一个标记&#xff0c;并且将原始字符串中的分隔符替换为空字符‘\0’&#xff0c;从而实际上是…

【Linux】Linux入门实操——vim、目录结构、远程登录、重启注销

一、Linux 概述 1. 应用领域 服务器领域 linux在服务器领域是最强的&#xff0c;因为它免费、开源、稳定。 嵌入式领域 它的内核最小可以达到几百KB, 可根据需求对软件剪裁&#xff0c;近些年在嵌入式领域得到了很大的应用。 主要应用&#xff1a;机顶盒、数字电视、网络…

系统管理与规划师

综合 工业化、信息化两化融合&#xff1a;战略、资源、经济、设备和技术的融合 诺兰6时期&#xff1a;&#xff08;初普控&#xff0c;整数成&#xff09;初始、普及、控制、整合、数据管理、成熟期&#xff1b;技术转型期介于控制和整合间 IT战略规划 IT战略制定&#xff1a;使…

tcpdump 是一款功能强大的网络数据包分析工具

功能概述 tcpdump 可以捕获和分析网络上传输的数据包。它允许用户在网络接口上监听经过的流量&#xff0c;并根据指定的条件&#xff08;如协议类型、源 IP 地址、目的 IP 地址、端口号等&#xff09;对数据包进行过滤和显示&#xff0c;帮助网络管理员、安全分析师和开发人员排…

容器化技术入门:Docker详解

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 容器化技术入门&#xff1a;Docker详解 容器化技术入门&#xff1a;Docker详解 容器化技术入门&#xff1a;Docker详解 引言 Doc…

C++20 概念与约束(2)—— 初识概念与约束

1、概念 C20 中引入新的编译期关键字 concept 用于创建概念。个人认为将其翻译为“构思”更为贴切。直接使用时&#xff0c;它更像一个只能用于模板的布尔类型关键字。 而如果用于模板中&#xff0c;他会将模板类型先带入自身&#xff0c;当自身条件为 true 才会实例化模板&…

FPGA实现以太网(一)、以太网基础知识

系列文章目录 FPGA实现以太网&#xff08;二&#xff09;、初始化和配置PHY芯片 文章目录 系列文章目录一、以太网简介二、OSI七层模型三、TCP/IP五层模型四、MAC-PHY接口五、MAC帧格式六、IP帧格式6.1 IP首部校验和计算6.2 IP首部校验和校验 七、UDP帧格式7.1 UDP头部校验和…