如何从 git repo 中只签出一个文件?
最初的回答:
git archive --format=tar --remote=origin HEAD:path/to/directory -- filename | tar -O -xf -
当前(2018 年)页面“关于在 GitHub 上归档内容和数据”建议使用第三方服务,如GHTorrent或GH Archive。
所以你也可以处理本地副本/克隆:
如果您有此答案中提到的裸存储库的本地副本,您也可以执行以下操作,
git --no-pager --git-dir /path/to/bar/repo.git show branch:path/to/file >file
或者您必须首先克隆存储库,这意味着您可以获得完整的历史记录: - 在 .git 存储库中 - 在工作树中。
git config core.sparsecheckout true
.git/info/sparse-checkout
要重新读取工作树:
$ git read-tree -m -u HEAD
这样,您最终会得到一个工作树,其中包含您想要的内容(即使它只有一个文件)
避免下载历史记录的 bash 函数,它检索单个分支并检索您需要的文件或目录列表。