Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Install specific git commit with pip

You can specify commit hash, branch name, tag.

For the branch name and the tag, you can also install a compressed distribution. This is faster and more efficient, as it does not require cloning the entire repository. GitHub creates those bundles automatically.

hash:

$ pip install git+git://github.com/aladagemre/django-notification.git@2927346f4c513a217ac8ad076e494dd1adbf70e1

branch-name

With git

$ pip install git+git://github.com/aladagemre/django-notification.git@cool-feature-branch

or from source bundle

$ pip install https://github.com/aladagemre/django-notification/archive/cool-feature-branch.tar.gz

tag

with git

$ pip install git+git://github.com/aladagemre/[email protected]

or from source bundle

$ pip install https://github.com/aladagemre/django-notification/archive/v2.1.0.tar.gz

It is a not well-documented feature, but you can find more information at https://pip.pypa.io/en/latest/topics/vcs-support/


It's possible to automatically install a python package using the requirements.txt file on you project just by adding the following line:

package-name -e git+https://github.com/owner/repository.git@branch_or_commit#egg={package-name}

and run the command line:

$ pip install -r requirements.txt


An extra comment to @hugo-tavares's answer:

If it's a private GitHub repository, you'll need to use:

pip install git+ssh://[email protected]/....

In your case:

pip install git+ssh://[email protected]/aladagemre/django-notification.git@2927346f4c513a217ac8ad076e494dd1adbf70e1

If you want to create an egg package, you can still use the same @branch_or_commit appendage: pip install git+ssh://[email protected]/myrepo.git@mybranch#egg=myeggscript