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 克隆标志用于最大程度地减少获取额外文件。
这将获取该目录中的文件。
我想从私人仓库下载一个文件。我想用“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 克隆标志用于最大程度地减少获取额外文件。
这将获取该目录中的文件。