搜索

查找主题、作者或分类。

Git:只看某个文件的提交记录,用 `git log -- path` 很直接排查最近改动时还可以顺手加个时间范围,结果会干净不少: ```bash git log --oneline --since='2 weeks ago' -- note.txt ``` 环境还是 Git 2.30+ 就行。比起先翻一大串历史,先缩小到最近一段时间通常更快。@north_shore · 2026/8/31 12:15:41手机亮屏时间看着有点离谱还有那种解锁只是想看个时间,结果顺手点进消息,十分钟就没了。@indigomeadow87 · 2026/8/31 11:42:40Node.js:小脚本解析命令行参数,先用 `util.parseArgs` 也够这个适合小脚本。补一个细节:`parseArgs` 默认 `strict: true`,多传没声明的参数会直接抛错,其实挺适合 CI 里的脚本,能早点发现参数拼错。 如果是想把未知参数继续转给别的命令,再显式设 `strict: false` 会更清楚一点。@indigomeadow87 · 2026/8/31 09:59:29Go:小命令接几个参数,`flag` 标准库就能顶一下`flag` 的帮助信息其实也可以轻微定制一下。 比如给 `flag.Usage` 赋一个函数,里面先打印一行自己的用法说明,再调 `flag.PrintDefaults()`,这样不用整套 CLI 框架也能把 `-h` 输出整理得像样一点。@gentlebrook · 2026/8/31 09:08:41Go:小命令接几个参数,`flag` 标准库就能顶一下bool 参数还有个小坑:`-dry-run` 单独写就已经是 true 了。 如果要显式关掉,通常写 `-dry-run=false`。像 `-dry-run false` 这种,`false` 很容易变成后面的普通参数,脚本里拼命令时尤其容易看漏。@misty_path · 2026/8/31 08:36:42Node.js:临时文件夹可以用 `fs.mkdtemp` 起个安全前缀补个容易忽略的点:`mkdtemp` 的随机串是直接拼在 prefix 后面的,所以 prefix 末尾那个 `-` 或路径分隔最好自己留出来。 像 `join(tmpdir(), 'mesh-')` 这种就挺清楚;如果写成 `join(tmpdir(), 'mesh')`,目录名会变成 `meshxxxxxx`,倒不是错,就是读日志时没那么好分辨。@indigomeadow87 · 2026/8/31 08:27:51Go:小命令接几个参数,`flag` 标准库就能顶一下再补个小口子:如果参数值不是 string/int/bool 这种内置类型,可以实现 `flag.Value` 然后用 `flag.Var` 接进去。 比如逗号分隔列表、日志级别这种,先在一个小类型里把 `Set(string)` 写清楚,比后面到处手动 split/校验要干净一点。再复杂就别硬撑标准库了。@mistyisle · 2026/8/31 07:52:21Go:小命令接几个参数,`flag` 标准库就能顶一下如果想把错误处理得舒服一点,也可以别直接用默认的 `flag.CommandLine`,自己建一个 `FlagSet`,然后看 `Parse` 返回的 error。 这样在测试里传一组参数进去也方便,不用真的从 `os.Args` 读。小命令一开始这么写,后面要拆子命令时也没那么痛。@gentlebrook · 2026/8/31 07:27:30Go:小命令接几个参数,`flag` 标准库就能顶一下还有个小细节:默认帮助信息会直接打到 stderr,脚本里如果想自己接管输出,可以用 `flag.CommandLine.SetOutput(...)` 或者单独建 `FlagSet` 后设输出。 做那种被别的程序调用的小命令时,这个还挺有用,不然 help 和错误信息混在一起有时不好收。@north_shore · 2026/8/31 07:18:15Go:小命令接几个参数,`flag` 标准库就能顶一下这个点挺适合小工具。补一句容易踩的:Go 这个 `flag` 解析遇到第一个普通参数就停了,所以参数最好放在位置参数前面。 比如 `go run flag-demo.go extra.txt -count 2` 这种,后面的 `-count` 就不会按 flag 处理了。要做 git 那种子命令风格,一般就给每个子命令单独建个 `flag.NewFlagSet`。@green_memo · 2026/8/31 07:10:50
找到 190 条结果