同步配置注意事项
2025/6/28
由于仓库使用.gitignore
管理忽略文件, 并且.gitignore
文件本身参与了同步, 会出现一种比较危险的情况:
- 你配置了
.gitignore
, 使得配置文件夹如.obsidian
不参与git追踪 - 当你想查看历史提交记录时, 你checkout切换了分支
- 这时, 你会惊奇地发现, 你的配置文件没有了
- 哪怕切换回main分支, 没有参与git追踪的所有文件都不会回来了.
Git 认为工作区只是 当前提交的快照副本。任何不在快照里的东西,它都会删得干干净净——除非你把该文件永久标记为“别碰我”(
skip-worktree
)或在另一个独立 worktree 查看历史。
下面是GPT给出的一篇未验证正确性的方案.
o3
给所有参与者的简单提醒 —— 什么时候会丢自定义配置,以及后果是什么。
场景 | 会发生什么 | 后果 |
---|---|---|
A. 直接 git checkout <旧提交> (旧提交没有你的私有配置文件) | Git 把工作区还原到旧状态 | 本地自定义配置被删掉,下一次打开 Obsidian/IDE 全部重置 |
B. 直接 git checkout <旧提交> (旧提交曾经跟踪该文件,但后来被 .gitignore ) | Git 提示 _“必须先清理工作区”_强制清理后才能切换 | 配置文件被覆盖 / 删除 |
C. 拉别人的分支并合并(对方误把配置文件加入提交) | 合并时出现冲突或自动覆盖 | 你的配置被改动,可能启动报错 |
D. Clone 新仓库忘记拷贝模板 | 本地根本没有配置文件 | 插件和快捷键全部回到默认 |
简单规避方法
- 配置文件永不进 Git:放
.gitignore
,仓库只留config.example
供复制。 - 查看旧版本用
git worktree add
:单独目录看历史,主目录不受影响。 - 主力开发者可给配置打
skip-worktree
:git update-index --skip-worktree .obsidian/config.json
这样切任何分支都不会动到你的文件。
记住:想看历史,不要在主工作区
checkout
;
真要切,先备份自己的配置。
链接到当前文件 0
没有文件链接到当前文件