Skip to main content

Enterprise Server 3.20 目前作为发布候选版本提供。

关于比较拉取请求中的分支

拉取请求会显示差异,用于比较你在主题分支中的更改与你要合并更改的基本分支。

注意

创建拉取请求时,你可以更改要比较更改的基础分支。 有关详细信息,请参阅“创建拉取请求”。

可以在“Files changed”选项卡中查看拉取请求中的建议更改。拉取请求选项卡的屏幕截图。 “已更改文件”选项卡以深橙色突出显示。

无需查看提交本身,你可以查看提议的更改,因为它们在拉取请求合并后就会出现在文件中。 文件按字母顺序显示在“更改的文件”选项卡中。添加的文件以绿色显示,并以 + 符号开头,而已删除的文件以红色显示,并以 - 符号开头。

差异视图选项

提示

如果难以理解更改的上下文,可以在“Files changed”选项卡中单击“View”,以查看包含建议更改的整个文件****。

用于查看差异的选项有多个:

  • 统一视图以线性视图同时显示更新的内容和原有内容。
  • 拆分视图在一边显示旧内容,另一边显示新内容。
  • 多差异视图显示拉取请求合并后更改的预览效果。
  • 来源视图显示来源中的更改,但没有多差异视图的格式。

您也可以选择忽略空白字符的更改,以更准确地查看拉取请求中的实质性更改。

拉取请求的“已更改的文件”选项卡的屏幕截图。 “差异视图”菜单用深橙色框标出。

为简化审查大型拉取请求中的更改,你可以筛选差异,只显示所选的文件类型、显示你是其代码所有者的文件、隐藏你查看过的文件或隐藏已删除的文件。 有关详细信息,请参阅“过滤拉取请求中的文件”。

“文件筛选器”下拉菜单的屏幕截图。 菜单已展开并用深橙色框出。

你还可以使用差异视图来查看使用拉取请求引入或更改了哪些依赖项,以及依赖项版本是否包含安全漏洞。 有关详细信息,请参阅“审核拉取请求中的依赖项变更”。

差异不显示的原因

三点和两点 Git 差异比较

          `git diff` 命令有两种比较方法;两点 (`git diff A..B`) 和三点 (`git diff A...B`)。 GitHub 上的拉取请求显示三点差异。

三点 Git 差异比较

三点比较显示两个分支 (merge base) 的最新常见提交和主题分支的最新版本之间的差异。

两点 Git 差异比较

两点比较显示基本分支(例如,main)的最新状态和主题分支的最新版本之间的差异。

要在 GitHub 上查看两点差异比较中的两个 committish 参考,可以编辑仓库的“比较更改”页面的 URL。 有关详细信息,请参阅 Pro Git 图书网站中的 “committish”的 Git 术语表

例如,此 URL 使用缩短的 SHA 代码比较提交 f75c5703391dcchttps://github.com/github-linguist/linguist/compare/f75c570..3391dcc

两点差异直接互相比较两个 Git committish 参考,如 SHA 或 OID(对象 ID)。 在 GitHub 上,两点差异比较中的 Git committish 参考必须推送到同一仓库或其复刻。

如果要模拟拉取请求中的两点差异并查看每个分支最新版本之间的比较结果,可以将基本分支合并到主题分支,以更新分支之间最新的共同原型。

有关比较更改的 Git 命令的更多信息,请参阅 Pro Git 书籍网站中的 Git 差异选项

关于 GitHub 上的三点比较

由于三点比较是与合并基础进行比较,因此它侧重于“拉取请求引入了什么”。

使用两点比较时,即使尚未对主题分支进行任何更改,差异也会在更新基本分支时发生更改。 此外,两点比较侧重于基本分支。 这意味着,添加的任何内容都显示为基本分支中缺少的内容,就像删除一样,反之亦然。 因此,主题分支引入的更改变得不明确。

相反,通过使用三点比较来比较分支,如果更新基本分支,则主题分支中的更改始终位于差异中,因为差异显示自分支分离以来的所有更改。

频繁合并

为了避免混淆,请经常将基本分支(例如,main)合并到主题分支中。 通过合并基本分支,两点和三点比较显示的差异是相同的。 建议尽快合并拉取请求。 这有助于参与者缩小拉取请求(通常建议这样做)。

其他阅读材料

  •         [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)
    
  •         [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks)