244

我无法弄清楚或找到有关如何以新的 Bit Bucket 格式访问旧提交源的文档。这甚至可能吗?

4

12 回答 12

380

我了解到您想通过 BitBucket Web 界面下载旧版本,而不使用 Mercurial/Git 客户端。

检查这个相关的问题。在评论中,有人说没有办法做到这一点。幸运的是,这并不完全正确。

通过在 BitBucket 项目页面上导航,我没有找到下载任意版本的链接。有下载特定标签的链接,格式如下:

https://bitbucket.org/owner/repository/get/v0.1.2.tar.gz

但是通过稍微调整上面的 url,通过提交哈希更改标签名称,例如:

https://bitbucket.org/owner/repository/get/A0B1C2D.tar.gz

您实际上可以下载特定版本。

正如Rakka Rage在评论中提到的那样,也替换.tar.gz.zip作品。

于 2013-06-05T03:19:06.140 回答
216

我试图弄清楚是否可以像在 GitHub 上一样浏览早期提交的代码,它把我带到了这里。我使用了在这里找到的信息,在摆弄了 url 之后,我实际上也找到了一种浏览旧提交代码的方法。

当您浏览代码时,URL 类似于:

https://bitbucket.org/user/repo/src/

并在最后添加一个提交哈希,如下所示:

https://bitbucket.org/user/repo/src/a0328cb

您可以在提交时浏览代码。我不明白为什么没有直接选择提交的下拉框,该功能已经存在。奇怪的。

于 2013-08-13T11:51:39.550 回答
197

步骤1

步骤1


第2步

第2步


第 3 步

第 3 步


第4步

第4步


最后一步

最后一步

于 2015-02-10T04:30:20.490 回答
38

以防万一有人在我的船上,而这些答案都没有完全奏效,这就是我所做的。

也许我们内部的 Bitbucket 服务器的设置与大多数服务器略有不同,但这里是我通常会去查看 master 分支中的文件的 URL:

https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse

如果我从下拉菜单中选择与 master 不同的分支,我会得到:

https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse?at=refs%2Fheads%2F<BRANCH_NAME>

所以我尝试这样做并且它有效:

https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse?at=<COMMIT_ID>

现在我可以浏览整个仓库,就像提交时一样。

于 2016-10-26T17:44:11.747 回答
10

几年前的好答案。现在 Bitbucket 让它变得更容易了。

标记您要下载的提交(如 Rudy Matela 的回答中所述)。

然后前往下载并单击“标签”选项卡,您将获得多个下载选项。

标签下载

于 2017-03-06T17:09:59.137 回答
8

作为记录,您还可以通过以下方式玩弄 URL:

浏览最新源时,您会看到类似: https://bitbucket.org/my/repo/src/latestcommithash/my.file?at=master

只需更改提交哈希并删除 GET 参数: https://bitbucket.org/my/repo/src/wantedcommithash/my.file

在上面 +1 @Hein A. Grønnestad :一切正常,真的很想知道为什么 GUI 中没有任何东西可以使用它。

于 2014-01-28T14:28:47.860 回答
2

?until=<sha-of-commit>您可以通过附加URL(在文件名之后)来查看文件的源直到特定的提交 。

于 2018-02-07T15:52:15.077 回答
2
  1. 最简单的方法是单击该提交并向该提交添加标签。 我在这个提交中包含了标签“last_commit”

  2. 比在位桶的侧面导航左角去下载。 点击左侧下载

  3. 现在单击导航栏中的标签并从 UI 下载 zip。 找到您的标签并下载 zip
于 2019-06-06T12:35:03.810 回答
1

您可以在您的 BitBucket 网站上查看它

正如Atlassian 社区网站上所解释的那样,转到Source页面(可从左侧菜单中获得)并将您的提交 ID 放在at=url 的查询参数中就足够了。因此,例如,url 将以?at=bacf2ad3095.

于 2021-08-18T19:42:25.000 回答
1

我知道为时已晚,但使用 API 2.0 你可以做到

从命令行:

curl https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>

或在 php 中:

$data = json_decode(file_get_contents("https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>", true));

那么你有你的文件的历史(从最近的提交到最旧的提交):

{
"pagelen": 50,
"values": [
    {
      "links": {
        "self": {
          "href": "https://api.bitbucket.org/2.0/repositories/<user>/<repo>/src/<hash>/<path_file>"
        },
        "meta": {
          "href": "https://api.bitbucket.org/2.0/repositories/<user>/<repo>/src/<HEAD>/<path_file>?format=meta"
        },
        "history": {
          "href": "https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<HEAD>/<path_file>"
        }
      },
      "commit": {
        "hash": "<HEAD>",
        "type": "commit",
        "links": {
          "self": {
            "href": "https://api.bitbucket.org/2.0/repositories/<user>/<repo>/commit/<HEAD>"
          },
          "html": {
            "href": "https://bitbucket.org/<user>/<repo>/commits/<HEAD>"
          }
        }
      },
      "attributes": [],
      "path": "<path_file>",
      "type": "commit_file",
      "size": 31
    },
    {
      "links": {
        "self": {
          "href": "https://api.bitbucket.org/2.0/repositories/<user>/<repo>/src/<HEAD~1>/<path_file>"
        },
        "meta": {
          "href": "https://api.bitbucket.org/2.0/repositories/<user>/<repo>/src/<HEAD~1>/<path_file>?format=meta"
        },
        "history": {
          "href": "https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<HEAD~1>/<path_file>"
        }
      },
      "commit": {
        "hash": "<HEAD~1>",
        "type": "commit",
        "links": {
          "self": {
            "href": "https://api.bitbucket.org/2.0/repositories/<user>/<repo>/commit/<HEAD~1>"
          },
          "html": {
            "href": "https://bitbucket.org/<user>/<repo>/commits/<HEAD~1>"
          }
        }
      },
      "attributes": [],
      "path": "<path_file>",
      "type": "commit_file",
      "size": 20
    }
  ],
  "page": 1
}

values> links>在历史记录中self提供当前文件,您可以使用curl <link>或检索它file_get_contents(<link>)

最终,您可以从命令行过滤:

 curl https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>?fields=values.links.self

在 php 中,只需foreach在数组上创建一个循环$data

注意:如果<path_file>有,/您必须将其转换为%2F.

请参阅此处的文档:https ://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/filehistory/%7Bnode%7D/%7Bpath%7D

于 2018-11-20T23:39:24.953 回答
0

找了半天,终于找到方法了:)

请检查此图片,其中说明了步骤。 在此处输入图像描述

于 2020-08-21T21:01:25.453 回答
0

在我使用 Atlassian Bitbucket v6.10 的情况下

https://<bitbucket.myserver.it>/projects/<myproject>/repos/<myrepo>/browse?at=<full-commit-hash>
于 2021-11-25T11:42:22.727 回答