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

时间:2012-11-05 19:34:11

标签: git download

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

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

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

2 个答案:

答案 0 :(得分:2)

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 -

答案 1 :(得分:0)

嘿,我只是wrote a script

使用

      python get_git_sub_dir.py path/to/sub/dir <RECURSIVE>