为什么pip安装e gitrepo会在调用第二个tim时将头改为master

2024-05-19 03:37:47 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我这样做:

pip install -e git://github.com/nimbis/django.git#egg=Django-dev

然后pip将从该存储库(1.4.1-patched)获取默认分支并安装它,正如您在src目录中看到的那样:

^{pr2}$

如果远程分支的名称仍与主分支相同(默认值为1.1),则仍使用主分支。在

$ pip install -e git://github.com/nimbis/django.git#egg=Django-dev
[(1.4.1-patched) lorin@nibbler ~/.virtualenvs/nimbis/src/django]
$ git log | head -n4
commit e567f439bdfc60e16c465220fdaa8ea8a0fae936
Merge: c0748a6 226a3e7
Author: Alex Gaynor <...>
Date:   Sun Jul 29 17:07:55 2012 -0700

我可以通过显式指定我想要的分支来解决这个问题,但是pip为什么要这样做呢?在


Tags: installpipdjangodevgitsrcgithub目录
2条回答

PIP版本控制对象(pip.vcs.版本控制)如果目标路径已存在,则签入check_destination。如果是这样,它将调用update方法而不是get。按默认值重置每个硬更新分支。在

您可以在上面和中引用的VersionControl类中看到确切的行为pip.vcs.git文件. 在

编辑:有点误读代码。如果目标存储库已存在,则调用“获取”而不是“更新”。由于rev_options默认为“origin/master”,update将重置到此分支。在

这很可能是个虫子!在

pip install git+git://github.com/nimbis/django.git@branchorreviwant#egg=Django-dev

相关问题 更多 >

    热门问题