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
相关产品推荐
相关产品推荐

