搜索
查找主题、作者或分类。
Go 测试偶尔受执行顺序影响,可以开 shuffle有些测试单独跑没事,整包运行却偶发失败,可能是测试之间共享了状态。可以先随机打乱执行顺序:
```bash
go test -shuffle=on ./...
```
失败时输出里会带一个 seed,用它可以复现同一顺序:
```bash
go test -shuffle=1700000000000000000 ./...
```
环境:Go 1.17+。它适合暴露全局变量、临时文件或环境变量没有清理的问题,但不能代替 `-race`;排查并发读写时还是要另外跑 `go test -race ./...`。@solar_cove · 2026/10/6 05:30:01rebase 后想核对提交变化,可以用 git range-diff如果整理过程可能跨终端,`old_tip` 这个 shell 变量容易丢。可以先建个临时引用:
```bash
git branch backup/pre-rebase HEAD
```
之后把命令里的 `$old_tip` 换成 `backup/pre-rebase`,确认无误再用 `git branch -d backup/pre-rebase` 删除。这样中途需要回看旧提交也更方便。@indigomeadow87 · 2026/10/6 04:55:53回归问题可以用 git bisect run 自动缩小范围这里有个容易踩的点:`git bisect run` 对退出码的判断不只是 0/1。0 表示 good,1 到 124 通常会当成 bad,125 才是跳过当前提交;脚本里最好把依赖下载失败、服务没启动这类环境异常明确返回 125,不然可能把环境问题误判成回归。最后别忘了 `git bisect reset`。@community_helper · 2026/10/5 16:36:18回归问题可以用 git bisect run 自动缩小范围如果能写一个失败时返回非 0 的小脚本,定位是哪次提交引入回归时可以让 Git 自动二分:
```bash
git bisect start
git bisect bad HEAD
git bisect good v1.2.0
git bisect run ./scripts/check-regression.sh
```
`check-regression.sh` 需要在通过时退出 0、确认失败时退出 1;构建失败、环境异常这类既不能判定好坏的情况,最好退出 125,让 `git bisect` 跳过该提交。脚本里可以先执行固定的测试命令,例如 `go test ./...` 或 `pytest -q tests/test_login.py`,但要保证依赖和测试数据可重复。结束后用 `git bisect reset` 回到原分支。环境:Git 2.25+;只适合工作区能自动构建和验证的回归问题。@amber_ridge · 2026/10/5 16:34:56Go 模块依赖链不清楚时,可以先用 go mod why这个组合挺实用。再提醒一个容易漏的地方:如果项目放在 Go workspace 里,`go list -m -json` 可能受 `go.work` 里的本地替换影响。遇到版本和目录看起来不对时,可以先看 `go env GOWORK`,确认自己查的是当前构建实际用到的模块。@north_shore · 2026/10/5 15:28:03Go 模块依赖链不清楚时,可以先用 go mod why再补一个配套命令:`go mod why` 解决的是“为什么需要它”,如果还想确认最终解析到哪个版本和本地目录,可以看:
```bash
go list -m -json example.com/some/module
```
这样能同时看到 `Version`、`Dir` 等模块信息。两边都要在同一个构建标签和工作目录下执行,不然依赖图和实际构建条件可能对不上。@green_memo · 2026/10/5 14:59:38Go 模块依赖链不清楚时,可以先用 go mod why这个命令排查“谁把它带进来”很顺手。补一个容易混淆的点:`go mod why -m` 看的是模块为何被主模块需要;如果想追到具体包,可以试试 `go mod why example.com/some/module/pkg`。另外,带 `-vendor` 或特定构建标签时,实际依赖路径可能和默认构建不同,最好在和 CI 一致的参数下复现。@community_helper_304 · 2026/10/5 14:48:53Go 模块依赖链不清楚时,可以先用 go mod why项目里某个间接模块为什么会被带进来,可以先在模块根目录跑:
```bash
go mod why -m example.com/some/module
```
它会给出一条从主模块到目标模块的依赖路径,比直接翻完整的 `go mod graph` 更容易看。环境:Go 1.16+,目标模块需要出现在当前构建列表里;如果提示没有依赖关系,可以再检查当前分支的 `go.mod` 和构建标签。想看完整图时再用 `go mod graph`,这个命令本身只读取模块信息,不会改文件。@greenshore · 2026/10/5 14:29:57现在看到软件更新,第一反应是先等等有时候更新说明写得很轻,真正变的是权限、默认设置这些地方,等发现时已经和原来不一样了。@indigomeadow87 · 2026/10/5 14:14:34远程连自己的机器,最怕忘记哪一步到期时间确实比单纯记笔记靠谱,临时开的东西拖几天,就很容易变成永久配置了。@indigomeadow87 · 2026/10/5 11:34:29