如何比较 Bitbucket 的两个版本?

我的团队正在使用 Bitbucket 作为我们的 git 存储库,我们最近开始使用 pull request 功能进行代码审查。它在第一次检查时工作得很好,但是如果它经历了多次迭代(也就是说,进行了更改并更新了请求) ,我希望看到一个链接,其中只包含自上次代码检查以来进行的新更改。

我研究了“比较”功能,但 UI 看起来只能在分支之间进行比较。有没有一种简单的方法可以区分两次提交?

71685 次浏览

试试这样:

https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<commit1>..<commit2>#commits

摘自: https://bitbucket.org/site/master/issue/4779/ability-to-diff-between-any-two-commits

Bitbucket 比较视图格式如下:

https://bitbucket.org/<owner>/<repo>/branches/compare/<new>%0D<old>

给出一个例子 ged/ruby-pg(RubyGem,一个 Ruby 库) :

比较两个版本(从 v0.18.1到 v0.18.2)

Https://bitbucket.org/ged/ruby-pg/branches/compare/v0.18.2%0dv0.18.1

比较两个版本(从 f97dd6c 到22a3612)

Https://bitbucket.org/ged/ruby-pg/branches/compare/22a361201fd1d387d59a066b179124694a446f38%0df97dd6cb4f34da6a62c4339887249115c7c25b9c

这只是对已经给出的答案的一个小小的修改,但是在结尾添加 # diff 而不是 # Commit 通常是我所寻找的。另外,正如其他人可能已经提到的那样,对我来说,最好的结果通常是将较新的提交放在第一位,而将较旧的提交放在第一位,但这将取决于您的特定需求。

https://bitbucket.org/<OWNER>/<REPO>/branches/compare/<commit-hash>..<commit-hash-older>#diff

Bitbucket 现在支持比较标签。

https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<tag1>%0D<tag2>

我有 Bitbucket Server,版本: v4.4.1

我的答案是这样的。

http://<path-to-my-server>/projects/<project-name>/repos/<repo-name>/commits/<old>?to=<new>

我一直在寻找这个答案,因为在我的项目中我们使用 git 子模块,而在 pull 请求中,我只能看到每个子模块的旧提交 sha 与新提交 sha 的变化。没有链接点击或任何(我知道的)跳转到这个差异视图。这个 URL 也允许我查看子模块中发生了什么变化。

顺便说一下,如果有人知道在请求过程中比较子模块中的两次提交的更好方法,请告诉我。

为要比较的提交创建一个 light 标记。 Git-a [ tagname ][ commit _ sha ]

然后在 Bitbucket,在比较菜单(执行拉请求的菜单)中,简单地与标签进行比较。

通过终端,在项目路径上运行 git:

git diff <new commit> <old commit>

例句: git diff 26cf60f be5f978

Bitbucket et.org 上 Compare 页面上分支/标签下拉列表中的搜索字段现在支持粘贴的提交哈希。

所以现在你可以直接转到 https://bitbucket.org/<owner>/<repo>/branches/compare/,然后把散列粘贴到下拉列表中,而不是 URL 黑客!

drop down, then paste in commit hash

转到 bitbucket 存储库 > 分支 enter image description here

点击菜单图标进行比较

您也可以在一个 pull 请求内部执行此操作,比如在某人向一个分支发送一个按钮以修复审查结果之后。据我所知,目前还没有这样的用户界面,但是你可以像这样输入网址:

https://<bitbucket-server>/projects/<PROJECT>/repos/<REPO>/pull-requests/<PR-NUM>/<commit-hash>?since=<commit-hash-older>

在命令提示符下

git log -p -1

这显示了与以前版本的比较。

git log -p -5

这显示了最后5个版本,比较了两个连续的版本(n & n-1,n-1 & n-2,等等)。

我意识到,显示两个特定版本之间的直接差异并不理想。

裁判 https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History