如何比较 Bitbucket 中的两个修订版?

Posted

技术标签:

【中文标题】如何比较 Bitbucket 中的两个修订版?【英文标题】:How to compare two revisions in Bitbucket? 【发布时间】:2014-02-21 14:48:27 【问题描述】:

我的团队正在将 Bitbucket 用于我们的 git 存储库,并且我们最近开始使用拉取请求功能进行代码审查。它在第一次审查时运行良好,但如果它经历了多次迭代(即进行了更改并更新了拉取请求),我希望看到一个链接,其中仅包含自上次代码审查以来所做的新更改。

我查看了“比较”功能,但 UI 看起来只能在分支之间进行比较。有没有一种简单的方法来获得两个提交之间的差异?

【问题讨论】:

介绍working with pull requests 或commit-level review bitbuckt 4.8 中的新功能 【参考方案1】:

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

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

【讨论】:

我希望他们能添加一些直观的 gui 来跟踪提交修订(类似于 gerrit) 我今天尝试了这个答案,但没有成功。任何人都可以验证它在当前版本的 Bitbucket 中仍然有效吗? 我刚刚尝试了来自 tortoisehg 项目的两次提交,但它似乎仍然有效。这是一个示例链接:bitbucket.org/tortoisehg/thg/branches/compare/… 效果很好。插入owner/repo,从提交列表中复制哈希,按回车键,然后bam。漂亮而简单的差异视图。 ?(为什么这在他们的 GUI 中并不明显......) @NightOwl - 你在使用 Stash/bitbucket 服务器吗?如果是这样,这只适用于 bitbucket.org - jira.atlassian.com/browse/BSERV-2550【参考方案2】:

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

所以现在您只需转到 https://bitbucket.org/&lt;owner&gt;/&lt;repo&gt;/branches/compare/ 并将哈希值粘贴到下拉列表中,而不是 URL 黑客攻击!

【讨论】:

这对我有用,但我需要编辑 url 以 #diff 而不是 #commits 结尾,根据之前的答案,否则它没有显示任何变化。 @brian.keng 你能把这个标记为正确答案吗?【参考方案3】:

尝试类似:

https://bitbucket.org/&lt;OWNER&gt;/&lt;PROJECT&gt;/branches/compare/&lt;commit1&gt;..&lt;commit2&gt;#commits

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

【讨论】:

在 4.14 版中不起作用。当您在 compare/ 之后添加任何内容(包括上述内容)时,会出现死链接错误。 与bitbucket.org/site/master/issues/11657/… 中提到的其他语法相同,它只给出一个通用的 404 及其下的路径。【参考方案4】:

Bitbucket 现在支持比较标签。

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

【讨论】:

这给了我一个页面,但不做标签之间的差异,这是我正在寻找的 为了后代,它可以工作,但tag1 必须以“v”开头并且更新,tag2 更旧。例如,bitbucket.org/codsen/array-includes-with-glob/branches/compare/…——其他方式不起作用,没有“v”也不起作用——这两种情况都会导致 404。 成功了。 https://bitbucket.org/&lt;OWNER&gt;/&lt;PROJECT&gt;/branches/compare/&lt;TAG1&gt;%0D&lt;TAG2&gt;?w=1#diff 这显示差异并忽略空格差异。【参考方案5】:

我有 Bitbucket Server,版本:v4.4.1

我的答案是这样的。

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

我一直在寻找这个答案,因为在我的项目中我们使用 git 子模块,而在拉取请求中,我只能看到每个更改的子模块的旧提交 sha 与新提交 sha。没有可以单击的链接或任何(我知道的)跳转到此差异视图的链接。这个 url 也允许我查看子模块中的变化。

顺便说一句,如果有人知道在拉取请求期间比较子模块中的两个提交的更好方法,请告诉我。

【讨论】:

在 Bitbucket Server v4.9.0 上,这一切对我来说都是显示第一次提交。它不比较修订版。 @Jeff 您是否尝试将 切换为 我可能把它们弄混了,如果是这样,那么我会更正我的答案 是的,同样的问题。事实上,截至 2016 年 11 月(本月),Atlassian 表示 Bitbucket Server 尚不支持此功能:jira.atlassian.com/plugins/servlet/mobile#issue/BSERV-2550。你确定它在做你认为它在你的系统上的事情吗? 我发现这适用于标签的 sudo,方法是获取每个标签的提交哈希【参考方案6】:

Bitbucket 比较视图格式如下:

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

举个例子ged/ruby-pg(RubyGem,一个红宝石库):

比较两个版本(从 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

【讨论】:

【参考方案7】:

转到您的 bitbucket 存储库 > 分支

点击菜单图标并进行比较

【讨论】:

【参考方案8】:

对我有用的是 https://bitbucket.org/-theusername-/-projectnamealllowercase-/branches/compare/-Leftalphanumberic_commitcode-..-Rightalphanumeric_commit-#commits

-username- 替换为您的username

感谢@Aguardientico

【讨论】:

【参考方案9】:

为要比较的提交创建一个轻量级标签。 git -a [标记名] [commit_sha]

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

【讨论】:

【参考方案10】:

您也可以在拉取请求中执行此操作,例如在有人推送到分支以修复审查结果之后。据我所知,目前还没有 UI,但您可以像这样输入网址:

https://&lt;bitbucket-server&gt;/projects/&lt;PROJECT&gt;/repos/&lt;REPO&gt;/pull-requests/&lt;PR-NUM&gt;/&lt;commit-hash&gt;?since=&lt;commit-hash-older&gt;

【讨论】:

【参考方案11】:

在命令提示符下

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

【讨论】:

【参考方案12】:

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

git diff &lt;new commit&gt; &lt;old commit&gt;

例如:git diff 26cf60f be5f978

【讨论】:

这是在命令行上用 git 比较事物的方法;问题是如何在网站上的 Bitbucket 中做到这一点:) bitbucket 没有这些功能.. 因此 cmd 行是唯一的方法.. 这是我发现最有用的答案。同意问题状态 bitbucket 并且这个答案确实提供了一个与 bitbucket 以及其他 git 解决方案很好地配合使用的解决方案。

以上是关于如何比较 Bitbucket 中的两个修订版?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Bitbucket 中的拉取请求变基

如何使用SvnKit获取两个分支之间的日志?

Power Bi 中如何实现跨表的大小比较筛选

Power BI中如何对矩阵中的所有值进行比较?

使变量在 Bitbucket 管道中的步骤中可见?

markdown [BitBucket比较提交]比较BitBucket提交#bitbucket #commits #compare