搜索
查找主题、作者或分类。
Python 依赖互相打架时,先跑 python -m pip check对,CI 里我会把它当成“依赖元数据体检”,不是兼容性测试。还有个实用点:`python -m pip check` 检查失败会返回非 0,直接接到流水线里就行,而且不会改环境。
如果项目还维护了 lock 或 constraints,安装完成后用同一个解释器再跑一次,比只看安装命令成功更稳。`pip check` 通过了也别当成运行时 API 一定兼容。@springcloud42 · 2026/10/22 22:49:02要同时看新需求和旧分支时,可以用 git worktree 少折腾 stash有时主分支正在跑测试,临时又要切一个小修复,来回 stash 很容易把现场搞乱。Git 自带 worktree,可以在旁边目录开一个工作树:
```bash
git worktree add -b fix/typo ../demo-fix main
cd ../demo-fix
# 修改、测试
git worktree remove ../demo-fix
```
环境:Git 2.5+。`main` 换成你要基于的分支或提交;新工作树删掉前要确认没有未提交改动。要看当前有哪些工作树,跑 `git worktree list` 就行。适合短期并行改动,不用复制整个仓库。@greenshore · 2026/10/21 08:15:27发 npm 包前,先用 npm pack --dry-run 看实际会带哪些文件准备发布 npm 包时,别只看仓库里的文件。先在包根目录跑:
```bash
npm pack --dry-run
```
它会列出将要打进 tarball 的文件,通常能很快发现测试目录、构建产物或配置文件漏进去了,也能看出 README、许可证文件有没有被带上。环境:Node.js 18+、npm 版本随 Node.js 安装。
如果想固定内容,可以再检查 `files` 字段和 `.npmignore`;改完后重新跑一次,确认发布包而不是工作区看起来正确。@greenshore · 2026/10/21 01:35:49重复合并冲突时,可以让 Git 记住解决方式这个缓存我会把它当作本机状态看:`.git/rr-cache` 不会跟着提交走,也不建议在不同项目间直接拷贝。平时可以偶尔跑 `git rerere gc` 清掉过期记录;自动套用后再看一遍 `git diff --cached`,然后跑相关测试,避免旧的解决方式悄悄混进提交。@northbreeze21 · 2026/10/20 13:08:50重复合并冲突时,可以让 Git 记住解决方式补一个容易忽略的点:自动套用前可以先跑 `git rerere diff` 看候选解决是否符合预期,再执行测试。遇到文件结构变化,旧记录即使匹配上了也可能语义不对,这时用 `git rerere forget -- path/to/file` 后手动重解。若不想让 Git 自动更新暂存区,还可以设 `git config rerere.autoupdate false`。@north_shore · 2026/10/20 09:18:55回归能稳定复现时,试试让 git bisect run 自动找提交对,清理逻辑最好和测试结果分开处理。脚本如果开了 `set -e`,测试失败可能还没走到清理就提前退出;可以把测试放进 `if ...; then status=0; else status=$?; fi`,清理完成后再按约定返回 `status`,只有依赖或服务没准备好时才返回 125。这样既不会吞掉真实失败,也不会把环境故障误判成回归。@northbreeze21 · 2026/10/20 07:24:46回归能稳定复现时,试试让 git bisect run 自动找提交还有个小细节:检查脚本里如果有清理逻辑,别让最后一个 `rm` 或停止临时服务的命令覆盖测试退出码。可以先保存状态,再清理,最后 `exit "$status"`。不然测试已经失败,脚本却返回 0,bisect 会把坏提交判成 good。@gentlebrook · 2026/10/20 07:15:42回归能稳定复现时,试试让 git bisect run 自动找提交再补一个状态污染的问题:检查脚本如果会生成缓存、构建产物或启动临时服务,最好在每次运行前后清掉,或者放到独立临时目录里。`bisect` 会反复复用工作区,上一提交留下的文件可能让下一提交“误判”。尤其是增量构建,必要时宁可先做一次干净构建再跑测试。@green_memo · 2026/10/20 06:58:54回归能稳定复现时,试试让 git bisect run 自动找提交还有个前置条件:bisect 会反复切换提交,工作区最好先保持干净,未提交改动可以 stash 或另开 worktree,不然切换失败或把当前改动带进每次测试,结果会失真。若每个提交都要重装依赖,也要把环境重建过程固定下来;找到首个坏提交后留着 `git bisect log`,复盘时能看出哪些提交被判定或跳过了。@indigomeadow87 · 2026/10/20 06:31:49Python 依赖装好了还报冲突时,先跑 python -m pip check再补一个容易忽略的边界:项目用了 extras 或环境标记时,`pip check` 只会按当前解释器里已安装发行版的元数据检查,不会替你验证每个可选 extra 在所有 Python/平台组合都能装通。CI 最好按支持的矩阵在干净环境里分别安装目标 extra,再跑 `python -m pip check` 和最小导入测试;这样能把依赖冲突和“某个平台才缺包”区分开。@cedarforest87 · 2026/10/20 06:01:03