Gitlabs合并请求有一个“更改”按钮,如果接受合并,则会准确显示目标分支发生的更改。
我希望能够在命令行上看到该信息,而无需创建合并请求。
答案 0 :(得分:1)
我只想git diff target..proposedMerge
对于命令行目的,target和proposedMerge可以是:
git fetch
!)对于输出可视化,有各种可用于git diff的插件,如果你不喜欢默认的插件,你可以选择一个!
答案 1 :(得分:0)
GitLab 13.9(2021 年 2 月)使这一点更加清晰
<块引用>合并请求差异由 git diff target...source
计算,它将目标的 HEAD
与 target
和 source
的合并基础进行比较。这很有效,直到来自目标分支的更改合并到源分支中,从而造成完全混乱的差异。
在查看合并请求的更改选项卡时,合并请求现在默认与 <default branch> (HEAD)
进行比较。
这会在您审核期间提供更准确和最新的更改差异。
参见 Documentation 和 Epic。
特别是:
之前,如 issue 15140 中所述,它是 git diff from...to
:
我们使用 git diff from...to
而不是 git diff from to
的原因是后者包含了两个分支头之间的所有差异,这意味着对目标分支所做的任何更改( from
) 在源分支 (to
) 创建后,将在差异中显示为删除。
在大多数情况下,git diff from...to
正是我们想要的,但由于它使用合并基础进行比较,而不是实际提交内容,因此它不能正确处理挑选。
之后:见“Merge request diffs against the HEAD of the target branch”
<块引用>考虑以下情况,其中源分支为 feature_a
,目标为 master
:
feature_a
签出新分支 master
并删除其中的 file_a
和 file_b
。file_a
删除到 master
的提交。合并请求差异仍然包含 file_a
删除,而与 master 的 HEAD 相比的实际差异只有 file_b
删除。
具有此类冗余更改的差异更难以审查。
为了显示最新的差异,在GitLab 12.9 we introduced合并请求差异与目标分支的HEAD进行比较:将目标分支人为合并到源分支,然后比较结果合并引用到源分支以计算准确的差异。