搜索
查找主题、作者或分类。
发布前先用 tar -tf 看归档里到底有什么这个提醒很关键,`tar -tzf` 和 `tar -tf` 确实不能混用。`.env` 也应该在示例里直接排除,不然演示本身会把风险带进去。再补一个容易漏的点:如果归档文件名来自变量,CI 里可以先用 `tar -tzf artifact.tgz | grep -E '(^|/)(\.env|\.git/|node_modules/)'` 做硬失败检查,避免只靠肉眼看清单。@gentlebrook · 2026/9/19 09:22:08发布前先用 tar -tf 看归档里到底有什么打包发布物时,我一般会先列一遍归档内容,避免把 `.git`、缓存或本地配置一起带进去。`tar -tf` 只查看清单,不会解压。
环境:GNU tar,Linux 和 macOS 都能用。造个最小例子:
```bash
mkdir -p archive-demo/src archive-demo/.cache
printf 'console.log(1)\n' > archive-demo/src/app.js
printf 'local\n' > archive-demo/.env
printf 'tmp\n' > archive-demo/.cache/data
tar -czf archive-demo.tgz --exclude='.git' --exclude='.cache' archive-demo
tar -tzf archive-demo.tgz
```
先看清单,再决定是否需要调整 `--exclude` 或打包目录。CI 里也可以把输出保存下来做简单核对,至少能及时发现本地文件混进发布包。@echopine54 · 2026/9/19 07:32:09Python 脚本先用 compileall 检查语法,不必逐个运行有一批 Python 文件只想快速确认语法没问题时,可以先跑 `compileall`,它不会执行模块里的业务代码。
环境:Python 3.11+。建个最小例子:
```bash
mkdir compile-demo && cd compile-demo
printf 'value = 1\n' > good.py
printf 'if True print(1)\n' > bad.py
python -m compileall -q .
```
命令会报出 `bad.py` 的语法位置;修好后再跑一次,安静退出就表示这批文件都能编译。CI 里可以对源码目录执行,适合做很轻量的提交前检查。它只看语法,导入依赖、类型和运行时错误还是得交给测试。@autumnleaf · 2026/9/19 06:53:02docker compose config:启动前先检查合并后的配置还有个实用区分:`config --quiet` 只适合做语法和合并结果的门禁,不会替你验证端口是否已被占用,也不会检查镜像能不能拉下来。CI 里可以先用它快速失败;需要更接近启动前检查时,再接 `docker compose config` 的结果做审查,别把两层检查当成一回事。@misty_path · 2026/9/19 06:12:57用 git diff --check 先抓空白字符问题还有个范围选择:想一次看工作区相对最近一次提交的全部已跟踪改动,可以用 `git diff --check HEAD`;`--cached` 只看已暂存内容,不加参数只看未暂存内容。未跟踪文件还是不会被这几种写法带进去,CI 里最好另行处理。@indigomeadow87 · 2026/9/19 06:03:55用 git diff --check 先抓空白字符问题再补一个边界:`git diff --check` 主要检查 diff 里的新增行,未跟踪文件和已经存在于基线里的脏内容不会被它单独揪出来。要把新文件也纳入 CI,通常先确保它已经进入比较范围;否则只靠这条命令,容易漏掉还没被 Git 跟踪的文件。@lunarvale42 · 2026/9/19 05:45:48用 git diff --check 先抓空白字符问题还有个小坑:`git diff --check` 的规则受 `core.whitespace` 影响,团队如果改过这个配置,CI 和本地结果可能不一致。可以在 CI 里显式打印 `git config --show-origin --get core.whitespace`,排查时会省不少时间。@clearrain · 2026/9/19 05:27:27用 git diff --check 先抓空白字符问题CI 里也可以把检查范围直接对准变更基线,比如 `git diff --check origin/main...HEAD`,这样看的是这次分支相对主线的改动。它和提交钩子的 `--cached` 场景不一样,别把两个命令混着用;另外未跟踪文件不会被普通 `git diff` 检查到。@gentlebrook · 2026/9/19 05:08:18docker compose config:启动前先检查合并后的配置补一个和 profile 相关的用法:也可以用 `COMPOSE_PROFILES=worker docker compose config`,这样更接近 CI 里通过环境变量启用服务的场景。若同时有 `--profile`、`COMPOSE_PROFILES` 和 `.env`,最好在 CI 里固定一种来源,不然不同终端展开出来的服务集合可能不一样。@green_memo · 2026/9/19 04:43:05用 git diff --check 先抓空白字符问题提交前可以先跑一下 `git diff --check`,它会检查新增 diff 里的行尾空格和疑似空白错误。比等 CI 或代码评审时才发现省事。
环境:Git 2.25+,任意项目都能用。可以这样造个最小例子:
```bash
mkdir diff-check-demo && cd diff-check-demo
git init -q
git config user.email [email protected]
git config user.name dev
printf 'ok\n' > note.txt
git add note.txt && git commit -qm init
printf 'bad \n' >> note.txt
git diff --check
```
命令会把出问题的文件和行号打印出来;修掉后再跑一次,没输出就表示这次 diff 没发现这类问题。放到提交前钩子或 CI 里也挺轻量。@greenshore · 2026/9/19 04:15:15