Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git:显示分支之间的差异,忽略合并到中的提交_Git - Fatal编程技术网

Git:显示分支之间的差异,忽略合并到中的提交

Git:显示分支之间的差异,忽略合并到中的提交,git,Git,我的存储库历史记录如下所示: x---y-+-z-+-branch / / / ---a---b---c-+-d-+-e---master 我想获得“分支”完整历史的单个差异(例如,像“git diff”输出-我不想要像“git log-p”生成的一大堆差异),而不包括从“master”合并到“branch”中的任何更改 如何执行此操作?您要查找的命令是: git diff master...branch 从git help diff的 git

我的存储库历史记录如下所示:

         x---y-+-z-+-branch
        /     /   /
---a---b---c-+-d-+-e---master
我想获得“分支”完整历史的单个差异(例如,像“git diff”输出-我不想要像“git log-p”生成的一大堆差异),而不包括从“master”合并到“branch”中的任何更改


如何执行此操作?

您要查找的命令是:

git diff master...branch
从git help diff的

git diff[--options]。。。
此表单用于查看包含到第二个分支的分支上的更改


这不是一个真正的答案,但可能是一个方向:我不认为只有使用git工具才有可能。你可以做一些疯狂的外壳黑客来做到这一点。一个好的起点:显示所有只在您的分支中的提交SHA:
git log branch\u name--不是master--没有合并--pretty=“format:%H”
“…从两者的共同祖先开始”-这是否意味着它只会为我提供自上次将“master”合并到“branch”以来的不同更改,而不是“分支”的全部历史?你试过这个命令吗?它将与图形中的分支相区别。这将显示自创建分支以来仅在分支上发生的所有更改(
b
)。我不清楚为什么,但是,鉴于上面的命令帮助部分的片段。到底是什么让你困惑?或者描述您认为这个命令做什么/应该做什么(基于您的理解)。正如文档所说,该命令显示了与共同祖先的差异,鉴于上图,我希望该差异仅显示自上次我将
master
合并到
branch
以来的变化,因为在此之前
master
上的所有提交都是
分支所共有的。在这里,这将是一个空的差异。键入它(耶,橡皮鸭编程!),我现在意识到该命令可以工作,因为尽管
master
的提交现在在
branch
上,但是
branch
的提交不在
master
上。如果我首先将分支合并到“master”中,那么反之亦然,这应该是差异开始的新的公共祖先,是吗?
git diff [--options] <commit>...<commit>