Github 拉取请求显示错误的差异

be-*_*ied 11 git github pull-request

我有两个分支:-master 和-develop。

我正在尝试将分支合并developmaster分支中。

我已经检查了 Tower 和 Araxis 合并,这两个分支是相同的。但是当我在 Github 上执行拉取请求时,我看到有 381 个文件被更改,就像文件根本不在 master 上一样。

任何想法为什么这种行为?

更新:我附上了拉取请求的截图。

在此处输入图片说明

Cat*_*kul 29

尽管 github 界面具有误导性/损坏性,但实际上有一种方法可以得到你想要的东西。你需要丢一个.

\n

代替:

\n
    \n
  • https://github.com/account/repo/compare/ath/branchA...branchB
  • \n
\n

\n\n

这会比较分支头,而不是简单地使用基础分支来查找合并基础。

\n

github 的回复是我从 @edwin-evans 的回复中得到的线索:

\n
\n

This is a result of the type of diff we use on GitHub. We use git\xe2\x80\x99s three dot diff, which is the difference between the latest commit on the HEAD branch and the last common ancestor commit with the base branch.

\n
\n


Pet*_* P. 10

我向 Github 支持询问了这个问题,这是他们的官方答案:

我们展示了所谓的“三点差异”,它是 HEAD 分支上的最新提交与基础分支上的最后一个共同祖先提交之间的差异。因此,如果您不久前分叉了一个存储库,并且从那时起父存储库中的情况发生了变化,或者如果您从 master 分支打开了 PR,然后 master 分支同时发生了变化,则差异不会显示。

听起来您更愿意看到“两点差异”,它将显示每个分支上最近两次提交之间的更改。将来您可以将基础分支合并回头分支。这会更新最后一个共同祖先,并且更有可能向您展示您期望在那里看到的内容。

所以你有它。将目标分支合并到 PR 分支并推送,这是解决此问题最简单且(imo)最正确的方法。我可以确认(22 年 12 月 20 日)这确实有效,因为我刚刚尝试过。

  • 谢谢,我以为这是一个错误 (2认同)

Edw*_*ans 7

这对我来说似乎是一个严重的错误。显然 github 并不认为这是一个错误:https : //github.community/t5/How-to-use-Git-and-GitHub/GitHub-pull-requests-showing-invalid-diff-for-already-merged /td-p/3000


Rom*_*eri 2

GitHub 和本地分支之间的比较没有理由不同。

如果您在本地存储库上进行了分支比较并且它们是相同的,则拉取请求中的差异必定意味着其中一个分支(也许两个?)与其远程对应分支不是最新的。

首先更新git fetch您的远程跟踪分支,然后检查每个分支并确保两个分支都是最新的,通过推送或拉取,具体取决于您的工作流程。


编辑(下面的评论摘要版本)

当你检查过

git branch -a -vv
Run Code Online (Sandbox Code Playgroud)

git log --all --decorate --simplify-by-decoration --oneline
Run Code Online (Sandbox Code Playgroud)

根据您所有分支的相对情况,您应该origin/master和进行不同的提交origin/develop,因为 GitHub 显示您的master提交落后于 208 次。

...显示了以下结果:

developorigin/develop处于 commit 状态5db9361
masterorigin/master处于 commit 状态d5cc1b1

GitHub 拉取请求预览是否会失败?(编辑:不是