Git
一个用于管理 Obsidian.md 存储库的社区插件。
文档
需求、安装步骤(包括移动端设置)、使用技巧、常见问题等更多信息可以在文档中找到。
移动端用户请参阅下方的移动端部分。
主要功能
- 定时自动备份存储库(拉取、提交、推送)。
- Obsidian 启动时从远程仓库拉取更改。
- 通过 Git 子模块管理不同的仓库(在设置中选择开启)(仅桌面端)。
- 通过源代码控制视图对单个文件进行暂存、提交和比对。使用"打开源代码控制视图"命令打开。
- 通过历史视图列出您的提交记录及其更改的文件(类似
git log
)。使用"打开历史视图"命令打开。 - 要查看文件的详细历史记录,强烈推荐使用 Version History Diff 插件。
源代码控制视图
历史视图
可用命令(不完全列表)
- 更改
列出更改的文件
:在模态框中列出所有更改打开差异视图
:打开当前文件的差异视图暂存当前文件
取消暂存当前文件
- 提交
提交所有更改
:仅提交所有更改,不推送使用特定消息提交所有更改
:同上,但使用自定义消息提交已暂存的更改
:仅提交已暂存的文件使用特定消息提交已暂存的更改
:同上,但使用自定义消息
- 备份
创建备份
:提交所有更改。如果启用了"备份时推送"设置,还会推送提交。使用特定消息创建备份
:同上,但使用自定义消息创建备份并关闭
:与"创建备份"相同,但在桌面端运行时会关闭 Obsidian 窗口。在移动端不会退出 Obsidian 应用。
- 远程
推送
拉取
编辑远程仓库
移除远程仓库
克隆现有远程仓库
:打开对话框,提示输入 URL 和认证信息以克隆远程仓库在 GitHub 上打开文件
:在浏览器窗口中打开当前文件在 GitHub 上的文件视图。注意:仅适用于桌面端在 GitHub 上打开文件历史
:在浏览器窗口中打开当前文件在 GitHub 上的文件历史。注意:仅适用于桌面端
- 本地
初始化新仓库
创建新分支
删除分支
警告:删除仓库
- 源代码控制视图
打开源代码控制视图
:打开侧边栏显示源代码控制视图编辑 .gitignore
将文件添加到 .gitignore
:将当前文件添加到 .gitignore
桌面端
认证
认证可能需要额外设置。更多信息请参阅认证文档
Linux 上的 Obsidian
- ⚠ 不支持 Snap。
- ⚠ 不推荐使用 Flatpak,因为它无法访问所有系统文件。
请使用 AppImage 代替(Linux 安装指南)
移动端
移动端的 git 实现非常不稳定!
限制
移动版由 isomorphic-git 支持,这是一个用 JavaScript 重新实现的 Git,因为在 Android 或 iOS 上无法使用原生 Git。
- 不支持 SSH 认证(isomorphic-git 问题)
- 由于内存限制,仓库大小有限
- 不支持 rebase 合并策略
- 不支持子模块
移动端性能
[!caution] 根据您的设备和可用空闲内存,Obsidian 可能会:
- 在克隆/拉取时崩溃
- 产生缓冲区溢出错误
- 无限期运行。
这是由于移动端底层 git 实现效率不高造成的。我不知道如何修复这个问题。如果您遇到这种情况,我不得不承认这个插件可能不适合您。因此,对任何问题发表评论或创建新问题都无济于事。我很抱歉。
测试环境: iPad Pro M1,使用一个仓库,其中包含 3000 个文件,从 10000 个 Markdown 文件 中缩减而来。
初始克隆花费了 0 分 25 秒。之后,最耗时的部分是检查整个工作目录的文件变更。在这个环境下,检查所有文件的变更以进行暂存需要 3 分 40 秒。其他命令如拉取、推送和提交非常快(1-5 秒)。
如果您有一个大型仓库/存储库,在移动端工作的最快方式是暂存单个文件,只提交已暂存的文件。
联系
行编辑功能由 GollyTicker 开发,因此任何问题他可能最能回答。
如果您有任何反馈或问题,欢迎通过 GitHub 问题或在 Obsidian Discord 服务器 上联系 vinzent3
。
这个插件最初由 denolehov 开发。从 2021 年 3 月起,由我 Vinzent03 开发此插件。这就是为什么 GitHub 仓库在 2024 年 7 月被转移到我的账户下。
如果您觉得这个插件有用,并想支持它的开发,您可以在 Ko-fi 上支持我。