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?
答案 0 :(得分:2)
由于安全原因,您无法从远程特定提交clone
或fetch
,更不用深度为1:http://thread.gmane.org/gmane.comp.version-control.git/73368/focus=73994
http://git.661346.n2.nabble.com/Fetch-by-SHA-missing-td5604552.html
答案 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下载文件。