要比较仓库的不同版本,请在仓库路径后追加 /compare。
我们将通过查看 Linguist 仓库的一个分叉的比较页面来演示 Compare 的强大功能,该页面位于 https://github.com/octocat/linguist/compare/master...octocat:master。
每个仓库的 Compare 视图包含两个下拉菜单:base 和 compare。
base 应视为比较的起始点,而 compare 为终点。在比较过程中,您可以随时点击 Edit 来更改 base 和 compare。
比较分支
Compare 最常见的用途是比较分支,例如在创建新的拉取请求时。开始 新拉取请求 时,系统始终会带您进入分支比较视图。
要比较分支,您可以在页面顶部的 compare 下拉菜单中选择分支名称。
下面是一个 两个分支之间的比较示例。
比较标签
比较发行标签会显示自上一次发行以来仓库的更改。更多信息,请参阅 比较发行。
要比较标签,您可以在页面顶部的 compare 下拉菜单中选择标签名称。
下面是一个 两个标签之间的比较示例。
注意
如果分支和标签同名,则在比较提交时会使用分支。若要专门比较标签,请在标签名前加上 tags/。
比较提交
您还可以在 GitHub 上使用两点差异比较(two‑dot diff),比较仓库或其 Fork 中任意两个提交。
要在 GitHub 上快速比较两个提交或 Git 对象 ID(OID),只需编辑仓库“比较更改”页面的 URL,即可进行两点差异比较。
例如,以下 URL 使用简写的 SHA 代码比较提交 f75c570 和 3391dcc:https://github.com/github-linguist/linguist/compare/f75c570..3391dcc。
想了解其他比较选项,请参阅 拉取请求中分支比较的说明。
跨 Fork 的比较
您可以比较基础仓库与任意 Fork。这是用户对项目发起拉取请求时呈现的视图。
要比较不同仓库中的分支,请在分支名前加上用户名。例如,将 octocat:main 设为 base,将 octo-org:main 设为 compare,即可分别比较 octocat 与 octo-org 所拥有仓库的 main 分支。
您还可以在分支名前加上用户名和仓库名。例如,指定 octocat:awesome-app:main 会使用 octocat/awesome-app 仓库中的 main 分支。这在大型组织中非常有用,因为组织可能同时拥有上游仓库和其 Fork。更多信息,请参阅 关于 Fork。
下面是一个 两个仓库之间的比较示例。
跨提交的比较
您可以使用两种符号,将单个提交与其前置提交进行比较。
| 符号 | 含义 | 示例 | 比较 |
|---|---|---|---|
^ | 前一个提交。重复使用 ^ 表示在历史中再向前一个提交。 | 96d29b7^^^^^表示在 96d29b7 之前的第五个提交。 | 查看比较 |
~N | 在 N 次提交之前。 | 96d29b7~5表示在 96d29b7 之前的第五个提交。 | 查看比较 |