pip: how to install a git pull request

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.


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

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