仓库此前没有 .gitattributes,行尾完全依赖 core.autocrlf=true。源文件在工作区 是 CRLF,而 esbuild 产物(public.css / public.min.css、运行时 .min.js)是 LF, 两种行尾混在同一套自动转换策略下:每次构建都会把产物整文件标记为已修改,真正的 改动反而被行尾噪音淹没。 - 新增 .gitattributes:源文件(php / js / cjs / vue / json / css / md 等)统一 text eol=crlf,与既有工作区一致;构建产物(assets/css/build/**、 assets/css/main.min.css、assets/js/runtime/*.min.js、assets/js/build/**) 强制 text eol=lf,与 esbuild 输出一致;.gitattributes / .gitignore 自身用 eol=lf,避免规则文件自己先被转换 - .gitignore 改为反向规则:先以 !/tests/ 放行整个目录,再逐个排除仅本地使用的 条目(visual-results、widget-golden 夹具、5 个 widget-system 用例、run.php、 scratch harness)。此前 tests/navigation/ 从未被放行,只靠历史追踪才没有从 仓库里消失——一旦有人重新 clone,相关用例就会缺文件 - 顺带纳入 /.workbuddy/ 验证:git ls-files --eol 确认源文件为 CRLF、构建产物为 LF;git status --ignored 确认仅本地条目仍处于忽略状态,反向规则没有意外放行本地用例。改动不触及运行时 代码与测试断言,node --test tests/**/*.test.cjs 370 项全部通过。
65 lines
1.9 KiB
Plaintext
65 lines
1.9 KiB
Plaintext
# Repository metadata and local agent workspaces
|
|
/.git/
|
|
/.claude/
|
|
/.compare/
|
|
/.zcode/
|
|
/.mimosa/
|
|
/.workbuddy/
|
|
|
|
# Project planning, internal docs, and local-only development files
|
|
/.aksrt-chrome-profile/
|
|
/.specs/
|
|
/docs/
|
|
|
|
# tools/: 只版本化两个共享入口,其余为本地脚本。
|
|
/tools/*
|
|
!/tools/build-public-assets.mjs
|
|
!/tools/wp-cli-visual-fixtures.php
|
|
|
|
# tests/: 放行整个套件,按名字排除本地专有产物。
|
|
#
|
|
# 这里刻意从「逐文件白名单」改为「先放行目录、再逐个排除」的反向写法:
|
|
# 白名单要求每新增一个 *.test.cjs 都同步改本文件,一旦漏改,该测试文件会静默
|
|
# 不被跟踪,在 CI 上表现为「测试数量莫名变少」,且极难排查。反向写法下新增测试
|
|
# 自动纳入版本控制,只有确需本地专有的文件才需要追加排除。
|
|
#
|
|
# 下列 10 个路径是切换前就已处于「忽略且未跟踪」状态的本地专有文件,逐一保留原状。
|
|
!/tests/
|
|
/tests/visual-results/
|
|
/tests/fixtures/widget-golden-v1.json
|
|
/tests/widget-system/a11y-contract.test.cjs
|
|
/tests/widget-system/admin-core.test.cjs
|
|
/tests/widget-system/captcha-cloud-contract.test.cjs
|
|
/tests/widget-system/comment-hard-cut-contract.test.cjs
|
|
/tests/widget-system/download-config-contract.test.cjs
|
|
/tests/widget-system/run.php
|
|
/tests/widget-system/scratch-term-aggregation-harness.php
|
|
|
|
/CLAUDE.md
|
|
/AGENTS.md
|
|
ask-*.md
|
|
!assets/css/routes/docs/
|
|
assets/css/routes/docs/*
|
|
!assets/css/routes/docs/toolbar-search-enhancements.css
|
|
|
|
# Frontend build output and installed dependencies.
|
|
# assets/admin/build is deploy-only: build it on the target with
|
|
# cd assets/admin && npm ci && npm run build
|
|
/assets/admin/node_modules/
|
|
/assets/admin/build/*
|
|
!/assets/admin/build/.gitkeep
|
|
assets/admin/.vite-temp/
|
|
|
|
# PHP installed dependencies
|
|
/vendor/*
|
|
!/vendor/.gitkeep
|
|
|
|
# Temporary / recovery helpers
|
|
restore-helper-monoliths.php
|
|
/.phpunit.cache/
|
|
|
|
# OS / editor noise
|
|
.DS_Store
|
|
Thumbs.db
|
|
*.log
|