You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git查看指定提交为何包含历史变更?如何仅查看第二次提交的变更?

问题原因及解决方法

为什么查看第二次提交会显示两行新增?

最常见的原因是第二次提交和第一次提交没有线性继承关系:比如你在第一次提交后,用git checkout退回到了提交前的初始状态,然后单独添加line2并提交,导致两次提交是平行的分支,第二次提交的父提交是仓库的初始空状态,而非第一次提交。这时git show对比的是第二次提交和它的父提交(空文件),自然会把line1和line2都标记为新增内容。

如果两次提交确实是线性的(第二次基于第一次提交),那可能是你的Git diff配置被修改,或者误加了git show的特殊参数,导致显示了额外内容。

如何仅查看第二次提交的变更?

  • 先确认提交关系:执行git log --oneline --graph,看两次提交是否是线性排列(第二次在第一次下方)。
  • 如果是平行提交的问题:可以用git rebase把第二次提交合并到第一次提交的后续,修正提交历史后再查看就会正常显示仅line2的变更。
  • 如果是线性提交但显示异常:
    • 直接指定对比范围:执行git diff <第一次提交ID> <第二次提交ID>,或者用git show <第二次提交ID>^!,这两个命令都会只显示第二次提交相对于第一次的差异,也就是仅line2的新增。
    • 也可以用git show --stat <第二次提交ID>快速查看变更统计,或者用git show --no-patch <第二次提交ID>只看提交信息,再配合git diff查看具体变更。

内容的提问来源于stack exchange,提问作者yash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 17:52:10