pip: how to install a git pull request

Question:

I want to install a git pull request with pip for testing in my local virtualenv. I want to install it directly from github, without creating a local git repository.

Asked By: guettli

||

Answers:

You can add the exact commit to the URL by appending the hash:

pip install git+https://github.com/other-repository/project.git@remote_branch_name

example:

pip install --user git+https://github.com/d1b/pip.git@fix_pip_build_directory

Or to a single commit. But this does not get updated, if the pull request (remote branch) gets updated:

pip install --user git+https://github.com/d1b/pip.git@d89b5803db2b520e754b9b26b771d22121738637
Answered By: guettli

A neat feature that github gives you is that it preemptively merges pull requests and makes them available as a hidden ref you can fetch specially. This is great if you’re building a CI system to test pull requests.

Up until recently, pip didn’t support specifying these hidden refs, but in the last month, support has landed in pip (confirmed working in 10.0.1) for this.

The following command will install the merged version of pull request 123 for user/repo:

pip install git+https://github.com/user/repo.git@refs/pull/123/merge

Additionally, to install the unmerged version of pull request 123 (without messing with the github API to track down the original branch!):

pip install git+https://github.com/user/repo.git@refs/pull/123/head
Answered By: Audrey Dutcher
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.