5

pip包管理器允许从各种 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 1git clone 的参数。

一般来说,如果没有完整的回购历史,是否有可能只获得某个提交?至少来自github?

4

3 回答 3

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

于 2011-08-26T00:54:36.137 回答
1

据我所知,没有。你可能想在git mailing list上询问这个问题。

于 2011-08-25T20:28:01.080 回答
0

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

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

于 2013-03-24T10:44:33.740 回答