用户认为当前源码管理混乱,要求研究是否可把所有源代码统一迁移到 /Users/ar/Projects/Taglauncher/src,以后不允许在其他目录放源代码,并且必须保证 Git 记录延续且有效。本轮只研究方案,不执行迁移。
codebase-migrate 技能的迁移规划方式评估。/Users/ar/Projects/Taglauncher 是主 Git 仓库工作区:/Users/ar/Projects/Taglauncher.gitmainb2b51506d0e91ebd400bb6b0504016a55ca4fd4f/Users/ar/Projects/Taglauncher-7.8.15-source 是同一仓库的 linked worktree,不是独立仓库:/Users/ar/Projects/Taglauncher/.git/worktrees/Taglauncher-7.8.15-sourcecodex/recover-7.8.15-grok-fix4f5d7c13209555a114761f5027299f3ba1b42217v7.8.22-build20260608.1324git worktree list --porcelain 还显示两个 prunable 的旧 worktree:/Users/ar/Projects/Apptag-7/Users/ar/Projects/Apptag8-ai/Users/ar/Projects/Taglauncher/src 当前存在但为空。main 与 codex/recover-7.8.15-grok-fix 没有共同 merge-base,属于同一 repo 内的两段 unrelated history:git merge-base --all main codex/recover-7.8.15-grok-fix 返回 status 1。main...codex/recover-7.8.15-grok-fix 约为 36 131。main 目前主要是网站文档:docs/ 和 readme.md,约 36 个 tracked files。codex/recover-7.8.15-grok-fix 是当前发布源码分支,顶层包含 Apptag/、Research/、Release/、Scripts/、build.sh、make_dmg.sh 等,约 466 个 tracked files。/Users/ar/Projects/Taglauncher 里还有大量 untracked 内容,包括 AGENTS.md、Release/、Research/、build/、LocalDataBackups/ 等;其中证书目录属于敏感/非源码资料,不应纳入源码迁移。迁移可行,但不建议直接把 linked worktree 移动到 /Users/ar/Projects/Taglauncher/src,因为那会形成“一个 Git 工作区里嵌套同仓库 linked worktree”的结构,仍然混乱。
推荐方案是:
- 保留 /Users/ar/Projects/Taglauncher 作为唯一工作区。
- 用一次 Git 迁移提交,把当前发布源码分支作为第二父历史接入 main,并把其文件树导入到 src/ 前缀下。
- 迁移后删除 /Users/ar/Projects/Taglauncher-7.8.15-source linked worktree。
- 更新 AGENTS.md / 项目文档,明确唯一源码根目录是 /Users/ar/Projects/Taglauncher/src。
main、当前 release tag、当前发布产物。main 上创建迁移分支,例如 codex/relocate-source-to-src。git merge -s ours --allow-unrelated-histories --no-commit codex/recover-7.8.15-grok-fix 建立双父历史。git read-tree --prefix=src/ -u codex/recover-7.8.15-grok-fix 将发布源码树导入 src/。/Users/ar/Projects/Taglauncher/src 运行 QA 和 build,验证构建脚本路径仍可用。git log --follow --find-renames -- src/Apptag/Info.plist 可追溯迁移前文件。git worktree remove /Users/ar/Projects/Taglauncher-7.8.15-source,再 git worktree prune。/Users/ar/Projects/Taglauncher-*source 这类源码目录,所有源码任务必须在 /Users/ar/Projects/Taglauncher/src 内执行。