特定のgit commitをpipでインストールする


回答:


281

コミットハッシュ、ブランチ名、タグを指定できます。

ブランチ名とタグについては、圧縮ディストリビューションをインストールすることもできます。リポジトリ全体を複製する必要がないため、これはより高速で効率的です。GitHubはこれらのバンドルを自動的に作成します。

ハッシュ:

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

支店名

git

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

またはソースバンドルから

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

鬼ごっこ

git

$ pip install git+git://github.com/aladagemre/django-notification.git@v2.1.0

またはソースバンドルから

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

十分に文書化されていない機能ですが、https://pip.pypa.io/en/latest/reference/pip_install.html#gitで詳細を確認できます


24
それはこの楽しいメッセージを追加します:Could not find a tag or branch '2927346f4c513a217ac8ad076e494dd1adbf70e1', assuming commit.
vlad-ardelean

10
@ vlad-ardeleanピップITがコミットであることを伝える方法に関するアイデアはありますか?これは私の配置スクリプトで出力されており、すべてのstderrを抑制したくありません。
Leonardo Arroyo

何も指定しない場合の動作は?
スコットスタッフォード

@ScottStaffordコミットメッセージのように呼び出されるブランチ/タグを使用しないでください。それは…奇妙だろう。
Martin Thoma

さらに、git+コマンドのHTTPSバージョンについても触れますpip install git+https://github.com/gpoore/codebraid@011464539bfb09b8611c8aef0d543532cea958bf。これは、企業のhttpプロキシの背後にいる人々にとって重要な場合があります。
grwlf

19

@ hugo-tavaresの回答への追加コメント:

プライベートGitHubリポジトリの場合は、以下を使用する必要があります。

pip install git+ssh://git@github.com/....

あなたの場合:

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

12

次の行を追加するだけで、プロジェクトのrequirements.txtファイルを使用してpythonパッケージを自動的にインストールできます。

-e git+https://github.com/owner/repository.git@branch_or_commit

そしてコマンドラインを実行します:

$ pip install -r requirements.txt


15
私(python3.5 virtualenvのpip 9.0.1)では機能しませんpip install -r requirements.txtでした:「要件名を検出できませんでした。#egg =で指定してください」しかし、それは '-e git + github.com/owner/repository.git#egg=branch_or_commit ' という形式で機能しました
Edouard Berthe

requirements.txtファイル内でこの形式を使用する必要があります。あなたはそれをやりました?
mannysz 2016年

動作しましたが、これは不明確です。行の先頭に「-e ...」だけでなく「package_name -e ...」が必要です。
ウディ

1

eggパッケージを作成したい場合でも、同じ@branch_or_commitアペンデージを使用できます。 pip install git+ssh://git@github.com/myrepo.git@mybranch#egg=myeggscript

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.