有没有办法从git只下载一个子目录?

有没有办法只从git存储库下载一个给定的子目录?假设我想从
https://github.com/djdeath/toys.git只获取nyancat目录.

我可以克隆整个存储库并忽略我不想要的文件,或者转到https://github.com/djdeath/toys/tree/master/nyancat并逐个下载相关文件.我认为必须有一个更简单的方法.

注意我不是在询问是否可以克隆目录,这是asked before,显然是不可能的.我只是对快速获取文件感兴趣,不需要提交,或者再次使用git.

最佳答案
git-archive命令将完成您想要的任务,但它需要在已经克隆的repo上运行,因此如果您有SSH访问主机,您可以执行以下操作:

cd /path/to/destination
ssh user@host "cd /path/to/repo && git archive HEAD dir/you/want" | tar xf -

或者,通过网络传输的压缩:

cd /path/to/destination
ssh user@host "cd /path/to/repo && git archive HEAD dir/you/want | gzip" | tar xzf -
点赞