From 12259ed4ecac9a5c176ef02dfcb83bb798d80b74 Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Thu, 3 Sep 2026 08:39:23 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E4=BF=AE=20.gitignore=20=E8=AF=AF?= =?UTF-8?q?=E4=BC=A4=E6=BA=90=E7=A0=81=E7=9B=AE=E5=BD=95=EF=BC=884=20?= =?UTF-8?q?=E7=B1=BB=EF=BC=8C28=20=E4=B8=AA=E5=B7=B2=E8=B7=9F=E8=B8=AA?= =?UTF-8?q?=E6=96=87=E4=BB=B6=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `git ls-files | xargs -n1 git check-ignore --no-index` 查出 49 个已跟踪 源码文件落在 ignore 规则下。它们现在能提交只是因为「已跟踪文件不受 .gitignore 影响」这条 git 规则在兜着——**新增文件会默默不入库**。 ## 根因一:缺前导斜杠(28 个文件) `knowledge/` / `memory/` / `scripts/` 不带前导斜杠,git 把它们当作 「任意层级的同名目录」: memory/ → 吞掉 internal/memory/ 24 个文件 knowledge/ → 吞掉 internal/knowledge/ 3 个文件 assets/knowledge/ scripts/ → 吞掉 deploy/scripts/ 1 个文件 本意只是忽略根级运行时数据目录。旁边的 `/adapters/` 就写对了, 这三条是漏了斜杠。 修法:补 `/` 前缀。验证两侧行为: 根级 knowledge/y.md memory/z.db scripts/tmp.sh 仍被忽略 ✓ 深层 internal/memory/new.go internal/knowledge/new.go deploy/scripts/new.sh 可入库 ✓ ## 根因二:internal/meta/ 整目录被忽略(1 个文件) 引入于 1f1233b(2026-07-12),同批还有 `.go/`、`.local/`、 `internal/plugins/openclaw/{manager,pysimulator}/`(后两个目录现已不存在)。 `internal/meta/meta.go` 是内核版本号与元数据的唯一数据源,本轮升 1.0.0 时 `git add` 报「paths are ignored」,就是这条。已跟踪所以改动能提交, 但新增 meta 文件会丢。直接删掉这条规则。 ## 保留的 20 项不是缺陷 `third_party/homeagent-sdk/example/` 下 20 个已跟踪文件(plg.json + plugin.go)仍在规则覆盖下,这是**有意的**:外部插件维护在独立 SDK 仓 (决策 sdk_repo_only),主仓只需要这 20 个源码文件参与构建,不要 SDK 仓的 main.go/go.mod/go.sum。删掉该规则会让 60+ 个文件涌进主仓——实测确认过。 已在两处 ignore 段落写明理由,避免后来人「修」错方向。 验证:修复后 check-ignore 扫描从 49 降到 20(全部是有意保留的 example/); go build ./... 通过。 --- .gitignore | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index c23ee2d..0595e62 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,6 @@ data/ .tmp-plugins/ .go/ .local/ -internal/meta/ *.hmap dev/ @@ -24,6 +23,11 @@ cmd/gui/dist/ .gopath/ # SDK 工具链 — 核心仓不追踪 +# +# 外部插件与工具链维护在独立 SDK 仓(决策 sdk_repo_only), +# 本仓经 go.mod 的 replace => ./third_party/homeagent-sdk 引用。 +# example/ 下已跟踪的 20 个文件(plg.json + plugin.go)早于本规则, +# 靠「已跟踪文件不受 .gitignore 影响」保留——这是有意的,不要「修」。 third_party/homeagent-sdk/bin/ third_party/homeagent-sdk/tools/ third_party/homeagent-sdk/package/ @@ -36,10 +40,15 @@ third_party/homeagent-sdk/example/ codegraph.json # 运行时产物(不提交) +# +# ⚠️ 这些必须带前导斜杠。不带斜杠的模式(如 `memory/`)会匹配**任意层级**的 +# 同名目录,把 internal/memory/、internal/knowledge/、deploy/scripts/ 一起吞掉 +# ——24 + 3 + 1 个已跟踪源码文件曾因此落在 ignore 规则下,只靠「已跟踪 +# 文件不受 .gitignore 影响」这条 git 规则兜着,新增文件会默默不入库。 /adapters/ -knowledge/ -memory/ -scripts/ +/knowledge/ +/memory/ +/scripts/ terminal_locked_log.txt dist/