踩了很多坑,关于obsidian-git 配置说明
本文最后更新于 356 天前,如有失效请评论区留言。

关于 obsidian-git 这个插件的使用,就不做具体的介绍了,
官网地址在这里 https://publish.obsidian.md/git-doc/Start+here

在使用的过程中,有几个需要注意的点在这里做下记录

这款插件是国外开发的,整个配置项不多,但是官方没有做一个全面的介绍,导致在使用的过程中出现的一些问题无从下手,浪费了很多时间。

advanced

高级设置里,很多看的不是很明白,具体指代的是什么

Pasted image 20231231222915

注意,以下这些配置,正常情况无需做任何设置,这里只做功能说明

自定义git二进制路径

Custom Git binary path

正常情况无需配置

这里说的是 git 的二进制可执行文件,就是 .exe 文件的路径,比如我这里 git 安装在 D:\Environment\Git\bin\git.exe

这里可填可不填,一般本地配置了git的环境变量,就不需要指定这个路径了

自定义git仓库路径

Custom base path (Git repository path)

正常情况无需配置

上面不是设置了 git 执行文件的路径吗,他就是用来使用 git 命令来操作你git仓库的内容的,可以联想到,这里说的是你本地git项目的路径

假设本地的git 项目 obsidian-test 目录层级是这样的,blog-notes 是 obsidian 仓库的路径,obsidian-test是该仓库下新建的一个 git 项目

├── blog-notes
│ ├── obsidian-test
│ ├── .git

这个设置允许你告诉系统在执行 git 命令时应该去哪个目录找到 Git 存储库。那么这个设置在这种情况下直接填相对路径 obsidian-test,这个就是当前 obsidian 仓库下的有效的 git 仓库 base path

自定义 .git 目录路径

Custom Git directory path (Instead of '.git')

正常情况无需配置

这个配置跟上面的 base path 是配套使用的,只要上面的配置是对的,那这里就保持为空

如果明白的就很容易理解,他这里括号写了一个替代 .git,我们知道 git 项目都有一个 .git 文件夹,那么这里就是说,你可以指定 .git 目录的路径,为什么要制定呢?

默认情况下,这里读取的是当前仓库根目录下的 .git 目录,假设你的 obsidian 仓库里有多个项目,每个项目都有一个 .git 目录,那么你就需要指定具体项目的 .git 路径了

在此设备上禁用

disable on this device

不明白为什么会有这个选项,感觉是多余的,但是如果你不小心把这个打开了,那么直接无法使用,提示 git is not ready

Pasted image 20231231235854

Automatic

自动提交区域就是关于自动操作的相关设置

Pasted image 20240101021052

  • Split automatic commit and push 是否将提交和推送分开操作,默认是保持相同的定时规则
  • Vault backup interval (minutes) 单位是分钟,可以是小数,仓库备份的时间间隔,这里的备份就是指 commit 和 push 的操作
  • Auto Backup after stop editing any file 无任何操作后多久开始备份,默认是关闭的,开启后会有一个时间的设置
  • Auto backup after latest commit 提交后自动备份,这个备份策略与上面的备份策略只能选一种
  • Auto pull interval (minutes) 自动拉取远程仓库的时间,单位分钟
  • Commit message on auto backup/commit 提交信息的格式设置,一般没啥要改的,保持默认即可

手动提交

在命令面板中(ctrl+p)搜索 obsidian git 就能找到很多该插件的命令,source control 就是 git 的操作的控制面板,手动提交的时候就需要用到了。也可以在该插件快键键设置里找到相关命令

手动推送到远程的步骤如下

  1. stage all 提交到暂存区
  2. commit 提交的本地仓库
  3. push 推送到远程仓库

Pasted image 20240101020457

各种报错

git 分支不匹配

plugin:obsidian-git:29119 Uncaught (in promise) Error: fatal: The upstream branch of your current branch does not match
the name of your current branch.  To push to the upstream branch
on the remote, use

    git push origin HEAD:master

To push to the branch of the same name on the remote, use

    git push origin HEAD

To choose either option permanently, see push.default in 'git help config'.

我们可以看下这个 .git 文件下的 config 配置内容,本地分支名称是 main,而将要 merge 合并的分支叫 master


省略了。。。。。

[branch "main"]

    remote = origin

    merge = refs/heads/master

也可以在 cmd 中通过命令 git branch 来查看

E:\obsNote\obsidian-git>git branch
* main

而我服务器上也只有一个分支,

Pasted image 20231231234510

问题就出在这里了,config 里merge = refs/heads/master配置有问题

git branch -m main

怎么解决呢,错误日志也告诉我们了

在 Git 中,每个本地分支通常都会关联到远程仓库的一个分支,这个远程分支称为上游分支。错误信息提供了两种解决方案,具体如下:

  1. 推送到远程的上游分支:

    git push origin HEAD:master

    这个命令将你当前的本地分支(HEAD)推送到远程仓库的 master 分支。确保将 master 替换为你实际的远程上游分支名称,因为这个名称可能因仓库设置而异。
    针对这个 案例,则需要推送到 main 分支

  2. 推送到远程与本地分支同名的分支:

    git push origin HEAD

    这个命令将你当前的本地分支(HEAD)推送到远程仓库中与其同名的分支。这假定你的本地分支与远程分支同名。

无效的 git 仓库

Pasted image 20240101015333

如图,提示你找不到有效的 git 仓库,这个就是上面说的, 自定义git仓库路径或者自定义 .git 目录路径有问题,即,默认的配置无效,或者你手动填的这个配置是无效的

版权声明:除特殊说明,博客文章均为Gavin原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。

评论

  1. 江南鸟蛋
    Windows Edge 128.0.0.0
    3 月前
    2024-9-14 22:26:10

    捉个虫:Auto backup after latest commit 这个选项,指的是手动提交会不会影响自动提交。比如设置了每10分钟自动提交,但是第7分钟的时候手动提交了一下,如果开了这个选项,就会重置计时,再等10分钟才会自动提交,否则就是3分钟后自动提交。

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇