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

git diff <commit1> <commit2>与<commit1>..<commit2>的用法差异

Git Diff 双点语法与直接指定提交的区别

问题1:git diff <commit1> <commit2> 与 git diff <commit1>..<commit2> 的区别

  • 当参数是**具体提交哈希/相对引用(如HEAD~n)**时,两个命令效果完全一致,直接对比两个提交的快照差异。
  • 当参数包含分支名时,双点语法有特殊逻辑:git diff branchA..branchB 等价于 git diff $(git merge-base branchA branchB) branchB,即对比分支A与分支B的共同祖先到分支B的变更;而直接写 git diff branchA branchB 仍是对比两个分支当前最新提交的快照差异。

问题2:git diff HEAD~3..HEAD~1 与 git diff HEAD~3 HEAD~1 的差异

这里的参数都是具体的提交相对引用,不属于分支名范畴,因此两个命令没有任何差异,都会直接对比 HEAD~3(当前提交往前数第3个提交)和 HEAD~1(当前提交的父提交)的代码快照变更。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:15:32