卡片布局别进 git,连接关系要留下
BaseHalf 把卡片位置写在 `.bh/` 里并对其忽略进 git。描述和 upstream 列表仍可提交,克隆拿到的是结构,不会为坐标打架。
团队共享文件夹,是为了看到同一批笔记和同一份 upstream 列表。不必共享你上周二每张卡片停在屏幕哪一格。BaseHalf 故意把这两类数据拆开。
卡片位置和尺寸写在 .bh/ 下。BaseHalf 用自己的忽略规则把这些布局文件挡在 git 外。我们从不改你的 .gitignore。描述、upstream 列表和生成记录,仍然可以跟文件夹一起提交。

什么跟着文件夹走,什么留在本机
克隆或拉取时,你拿到的是工作和结构,不是别人的坐标。
| 不进 git(按克隆 / 机器) | 可以提交 |
|---|---|
.bh/ 下的卡片位置与尺寸 | 卡片上的描述 |
选中缓存(.bh/cache/selection.yaml) | Markdown frontmatter 或 .bh/mirror/.../upstream.yaml 里的 upstream 列表 |
| BaseHalf 为其忽略进 git 的布局元数据 | 你选择保留的生成记录 |
Upstream 是文件里的纯文本。从没打开过画布的同事,在 diff 里也能看到这些列表。布局只是你这一次怎么摆卡片。把两者都塞进每次 PR,每一次微调都会变成像素级的合并冲突。
在另一台机器打开同一个文件夹
具体流程:
- 照常提交描述和 upstream 列表。
- 在另一台 Mac 上克隆或拉取。
- 用 BaseHalf 打开该文件夹。
画布上是同一批文件、同一组连接。位置对该克隆是全新的。卡片按这个窗口重新排布,不会回放上一台机器的 x/y。把卡片拖到你想要的地方。这些移动留在本机 .bh/,不会变成所有人的 git 噪音。
移动或重命名文件时,仍会按内容识别更新 upstream 条目。那是在修你要提交的列表,不是在恢复一块共享的看板视图。
这不是什么
这道分界是为了共享 AI 工作区时不打布局仗。它不是跨机器同步同一视图的产品。两个人可以打开同一个仓库,摆法不同,读到的 upstream 却相同。重点就在这:结构在 git 里累积;座位图不进仓库。
我们把卡片布局留在 git 外,让克隆只关于工作本身。连接、描述,以及 Agent 会读的那些列表,留在文件夹里,搜索、diff,以及下一次 Claude Code 或 Codex 会话都能找到。