如何区分 GitHub 中的两个分支?

我只是想知道是否有一种方法可以简单地区分 GitHub 的两个分支?我知道 GitHub 有能力做到这一点,因为当我们进行代码审查时,它确实很好地列出了所有的差异。我只是想知道,是否有一种方法可以不需要任何代码审查就可以做到这一点,比如将 Branch 与 Branch 或 Commit 进行比较?所以,当我把一些东西推到我的远程分支,我想看看我的差异是如何去创建一个公关之前,它可以是非常有帮助的。

我可以一直在控制台中做 git diff,但是这并不像它在 GitHub 的 web UI 中显示的那样好看和清晰。有什么想法吗?

189705 次浏览

使用 比较特性来实现这一点。

要比较存储库的不同版本,请将 /compare附加到存储库的路径中。

如果你在默认分支以外的其他分支上(通常是“ master”) ,你应该看到一个到 比较的链接:

Compare 1

单击它,您应该重定向到比较工具,在那里您可以选择分支或提交进行比较

Compare 2

更新日期: 2021年12月

GitHub 似乎隐藏了这个选项,现在它在“贡献”下拉列表的后面:

Screenshot of the "contribute" dropdown Screenshot after you click the "contribute" dropdown, showing the Compare button

在 GitHub 上还有另外一种方法可以实现这一点,只需尝试创建一个新的 Pull Request,其中包含您想要比较的分支。

比如说

分支 -1 <-分支 -2 或者 分支 -2 <-分支 -1

在底部,您可以看到这些分支之间的文件和提交差异。 只是不要创建拉请求,如果你不想合并这两个。

扩展@Ari M 的回答. URL 格式如下:

https:// <REPO URL>/compare/<SOURCE BRANCH OR COMMIT>...<TARGET BRANCH OR COMMIT>

注意 .....之间的 不同(2和3个点)。

2点 : 显示 TARGET 有但 SOURCE 没有的所有提交,并显示 SOURCE 有但 TARGET 没有的所有提交。

3个点 : 显示 TARGET 有但 SOURCE 没有的所有提交。 < em > 您通常需要这个。

例如,看看在 gh-pages分支中添加了什么,与 linguist回购中的 master相比:

Https://github.com/octocat/linguist/compare/master...gh-pages

对我们来说,比较选项被禁用和 git diff <branch-1> <branch-2>返回行的差异,它也混淆。

Intellij 有一个特性可以与 Branch 进行比较

右键单击 project-> Git > Compare with Branch。

文件列表将出现差异。

这可能是一个有用的技巧,可以节省一些输入: 只需将 /compare添加到 yourBranch的 URL 中,就可以与默认的 在上游的回购分支(即您最初分叉的那个分支)进行比较。基本上,它会自动生成一个重定向到类似的东西(注意倒置)

/compare/upstream...yourUserName:yourBranch

另外,为了给 Max Ivanov 的答案添加一些从上面可以明显看出来的东西,您还可以在 /compare中以通常的 GitHub 格式 userName:branchName指定其他人的回购。