← 全部文章

技术与生活 / 一篇记录

提交前只看 git diff,可能漏了一半

普通 diff 查看未暂存变更,cached diff 查看准备进入提交的内容。

暂存区是提交内容的直接来源,普通 diff 却默认比较工作区与暂存区。文件一旦暂存,相关修改可能从普通 diff 中消失,但仍会进入下一次提交。

操作与观察

以下示例应在测试仓库中使用;远端和分支名需要按项目实际配置替换。

git diff; git diff --cached

检查暂存区是否夹带调试代码或凭据。

分别检查未暂存补丁与已暂存补丁,再核对文件清单。遇到敏感信息时,不仅要移出暂存区,还要确认它是否已经存在于历史提交。

分块暂存后,暂存区可能与工作区形成两个不同版本。测试工作区代码通过,不一定证明暂存版本也能运行。提交前尤其要核对相互依赖的改动是否都已经进入同一批变更。

别遗漏这条边界

只检查工作区 diff 可能漏掉已经暂存的文件。

参考:Git 文档。

搜索文章

输入关键词,找回一篇记录。