运行 "git archive" 在 Azure Git 中给出错误信息

Running "git archive" in Azure Git gives error message

我正在尝试从 Azure Git 存储库中提取单个文件。

但是如果我 运行 这个: git archive --remote="ssh.dev.azure.com:v3/[organization]/[project]/[repo]" master myfile

它returns一个错误:

remote: Could not find a Command Extension for Command:git-upload-archive
fatal: the remote end hung up unexpectedly

这发生在 Linux 和 Windows 中。

另一方面,请注意这些工作正常:

git clone "ssh.dev.azure.com:v3/[organization]/[project]/[repo]"

git ls-remote "ssh.dev.azure.com:v3/[organization]/[project]/[repo]"

正在考虑:

  • 远程端 (Azure) 不支持 git 归档
  • git 克隆作品

最明显的解决方法是执行 git clone --no-checkout,然后是 git restore 您需要的文件。
或者 sparse checkout:

git clone --filter=blob:none --sparse /url/repo
cd repo
git sparse-checkout init --cone

## or

git clone --filter=sparse:oid=shiny-app/.gitfilterspec` /url/repo
cd repo

# with .gitfilterspec including the file you need

我能够使用这种方法从文件中提取数据:

curl -u ":[Personal Access Token]" "https://dev.azure.com/[organization]/[project]/_apis/sourceProviders/TfsGit/filecontents?repository=[repo]&path=[filepath]&commitOrBranch=[branch]&api-version=5.0-preview.1"