如何从github pip安装特定日期

时间:2016-05-10 04:19:12

标签: python git github

我需要从git hub安装pip,但是需要5月4日的存储库。谁能帮助我呢?

例如,如果我想pip install我可以在命令下面使用repo的特定分支:

pip install https://github.com/user/repo.git@branch

但是不知道除分支名称之外的日期是如何获得的?

2 个答案:

答案 0 :(得分:1)

好吧,您可以将<branch>替换为所需的提交<sha-1>。我刚用bpython检查了它:

$ pip install --upgrade --user git+https://github.com/bpython/bpython.git@f2014dbae31313571cc9c26f51a14f4fda09d138
Collecting git+https://github.com/bpython/bpython.git@f2014dbae31313571cc9c26f51a14f4fda09d138
  Cloning https://github.com/bpython/bpython.git (to f2014dbae31313571cc9c26f51a14f4fda09d138) to /tmp/.private/alex/pip-tQcJmV-build
  Could not find a tag or branch 'f2014dbae31313571cc9c26f51a14f4fda09d138', assuming commit.
...

另一个问题是如何获得给定日期的提交。

第一个选项是打开浏览器,找到适当的提交并手动为pip install形成正确的URL。实际上我用这种方式作为上面的例子。

但是你可能希望自动化。我会从github做一个给定repo的本地浅拷贝:

git clone --depth 10 --single-branch --branch master https://github.com/bpython/bpython.git

(仅从bpython官方回购的主分支中获取最后一次提交

然后,确定满足日期限制的提交:

COMMITID=$(git rev-list -n 1 --before '2016/04/07 16:36:15 2016 +0000' HEAD)

然后,使用pip install命令中的commit id:

pip install --upgrade --user git+file:///tmp/.private/alex/bpython@${COMMITID}

答案 1 :(得分:0)

您可以克隆存储库,在本地签出您想要的日期,然后以开发模式pip install:

git clone https://github.com/user/repo.git
cd repo
git checkout `git rev-list -n 1 --before="2016-03-03 13:37" master`
pip install -e