从git安装时,我可以强制点子进行浅结帐吗?

时间:2018-10-25 12:27:46

标签: python git pip

以下命令从git存储库安装Python软件包:

$ pip install git+ssh://git@github.com/username/repo.git
Collecting git+ssh://git@github.com/username/repo.git
  Cloning ssh://git@github.com/username/repo.git to /tmp/pip-req-build-8s4nci15

我不确定100%,但是由于花费了很长时间,我猜它会克隆每个提交。但是对于安装,我只需要最新的。

相反,我想要一个浅表克隆(带有--depth 1)。有可能吗?

2 个答案:

答案 0 :(得分:1)

--depth 1命令中添加git clonebeen discussed at length,并且暂时被pip的维护者拒绝。它似乎是more complex issue than one might expect,特别是因为它会破坏广泛使用的setuptools_scm

正如克劳斯(Klaus)在评论中所说,您can avoid the overhead of git clone by pointing to a remote archive file而不是使用Git URL:

pip install http://my.package.repo/SomePackage-1.0.4.zip

答案 1 :(得分:1)

除了可能会根据托管方式使用的变通方法(如ZIP)外,通用的git变通方法是预先创建浅表克隆,然后(因为您的克隆本身就是git repo) PIP到克隆。

这不是理想的选择(因此“变通”),因为对于自动化情况,您必须在调用PIP之前编写浅克隆的脚本编写,并且提供给PIP的数据将列出克隆相应包的URL而不是规范URL。

此外,由于在PIP“深度= 1”辩论中提到的原因,根据您(或依赖项)使用的工具,它可能最终对您不起作用。 git describe似乎是问题(或至少是一个常见问题)的症结所在;因此,您可以将标记放在您在本地进行的一次提交上,作为进一步的解决方法。