git 从私人仓库下载文件

git download a file from a private repo

我想从私人仓库下载一个文件。我想用“git”(不是 gitlab/github api)来做到这一点。

Git 提供这种方式 https://git-scm.com/docs/git-archive. You can fetch a file like this

git archive --remote=ssh://host/pathto/repo.git HEAD README.md

但是我不能使用ssh。我想使用 http 和我拥有的令牌下载文件。

我可以像这样克隆我的存储库:

git clone -b branch http://oauth2:$gitToken@${gitRepo}

但是如果你发出这样的命令:

git archive --remote=http://oauth2:$gitToken@${gitRepo} branch filename 

您遇到错误:

fatal: operation not supported by protocol

所以问题是我们如何使用令牌从私有 git 存储库下载文件。 (git-归档方法或其他(git)方式)

谢谢

GitHub(我怀疑大多数 public Git 托管服务提供商)不支持通过 HTTPS 进行远程存档。

更现代的 git 方法是最近的 git clone --filter/sparse-checkout 方法

git clone --filter=blob:none --sparse https://[token]@github.com/CSSEGISandData/COVID-19.git
cd COVID-19/
git sparse-checkout init --cone
git sparse-checkout add /the folder you want/

另见 ,我在其中编辑 .git\info\sparse-checkout

我希望有一个简单的解决方案。但是我可以实现下载文件的唯一方法是“sparse-checkout”作为

但是我修改了获取文件的方式,而不是目录,所以它与那个指令不同。

要下载文件,您可以这样做:

git clone --depth 1 --filter=blob:none --no-checkout -b branchName http://oauth2:$gitToken@$gitRepo repoFolder
cd repoFolder
git sparse-checkout set $fileName

那些 git 克隆标志用于最大程度地减少获取额外文件。

这将获取该目录中的文件。