语义化版本号用主、次、修订三段表达改了什么、会不会破坏兼容:只有不兼容的 API 变更才动主版本号。读懂它,你就知道 ^1.2.3 为什么不会自动升到 2.x,也能判断一次依赖升级要不要进迁移计划。附 ^ 与 ~ 的范围差异和升级决策。
已经 push 的提交不要 reset 后强推,优先用 git revert 生成反向提交去抵消它,历史完整、队友也不冲突。本文讲清 revert 与 reset 的适用边界、多人协作的安全操作顺序,以及提交里混进密码时为什么 revert 救不回明文。附完整命令。
Node.js 读取文件最常用 fs.readFile 异步读取,指定 utf8 编码即可拿到字符串。本文讲清 4 种方式:fs.readFile 异步回调、fs.readFileSync 同步、fs.promises 配 async/await、createReadStream 流式读取,并拆解忘记编码得 Buffer、同步阻塞、大文件爆内存三大坑,帮你按场景选对方法。