我需要使用 powershell 从 bitbucket (git) 中获取单个文件。使事情复杂化我需要通过 http/https 执行此操作,因为我正在运行 powershell 的系统没有直接的互联网访问权限(因此 ssh 不是一个选项)。我该怎么做?
我想也许我可以使用 Invoke-WebRequest 并访问原始 URL 来获取它。例如:https ://bitbucket.org/company/project/raw/HEAD/some/special/file.txt
但似乎访问您必须进行身份验证。我已尝试设置身份验证,但无法正常工作。
我想接下来我可以使用 git archive 从 git 中提取它: git archive --remote=git://bitbucket.org/Company/project.git HEAD:some/path/file.txt 但这似乎也没有工作。
那么我怎样才能得到一个文件。我不想只做 git clone 因为我必须在 repo 中拉下(并存储)价值 500MB 的其他我不关心的文件,这是一个问题,原因有两个
1) I have to have space to store all that data (at least temporarily)
2) Unless I want to tie up that storage permanently I have to re-download it each time I need the file.
我需要的文件是 10KB,所以为一个 10kb 的文件占用 500MB 似乎很荒谬。
答案是什么?必须有一种方法可以让 Invoke-WebRequest 正确验证或只下载单个文件?任何 git 大师都可以 - 特别是具有 powershell/windows 背景的帮助吗?
谢谢!布拉德
BitBucket 似乎有一个非常标准的 REST API,您可以使用
Invoke-WebRequest
或Invoke-RestMethod
。以下是他们文档的一些链接:Authentication and GET raw content。这些文档页面的要点是它们支持基本身份验证和对原始文件内容的 GET 请求。因此,从您的示例中,您需要执行以下操作: