是否有可能只从深度为1的git repo克隆某些提交?

时间:2011-08-25 20:19:45

标签: git pip git-clone

pip包管理器允许installing from various VCS包括git

  

Pip目前支持克隆git,git + http和git + ssh:

-e git://git.myproject.org/MyProject.git#egg=MyProject
-e git+http://git.myproject.org/MyProject/#egg=MyProject
-e git+ssh://git@myproject.org/MyProject/#egg=MyProject
     

也可以传递分支名称,提交哈希或标记名称:

-e git://git.myproject.org/MyProject.git@master#egg=MyProject
-e git://git.myproject.org/MyProject.git@v1.0#egg=MyProject
-e git://git.myproject.org/MyProject.git@da39a3ee5e6b4b0d3255bfef95601890afd80709#egg=MyProject

当包很小时,这很好,但是当包很大时(例如Django),它变得非常慢。如果我只需要最后一次提交master分支,那么我可以使用--depth 1参数进行git clone。

在没有完整的回购历史的情况下,是否有可能只获得某个提交?至少从github?

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

据我所知,没有。您可能想在git mailing list上询问此问题。

答案 2 :(得分:0)

您可以使用GitHub API获取最后/任何提交:http://developer.github.com/v3/repos/commits/#get-a-single-commit

这不是git命令,您需要发出HTTP请求,解析JSON响应并使用diff-data下载文件。