Installieren Sie ein bestimmtes Git-Commit mit pip


Antworten:


281

Sie können einen Commit-Hash, einen Zweignamen und ein Tag angeben.

Für den Filialnamen und das Tag können Sie auch eine komprimierte Distribution installieren. Dies ist schneller und effizienter, da nicht das gesamte Repository geklont werden muss. GitHub erstellt diese Bundles automatisch.

Hash:

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

Zweigname

Mit git

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

oder aus dem Quellpaket

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

Etikett

mit git

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

oder aus dem Quellpaket

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

Es ist eine nicht gut dokumentierte Funktion, aber Sie finden weitere Informationen unter https://pip.pypa.io/en/latest/reference/pip_install.html#git


24
Es wird diese lustige Nachricht hinzufügen:Could not find a tag or branch '2927346f4c513a217ac8ad076e494dd1adbf70e1', assuming commit.
vlad-ardelean

10
@ vlad-ardelean Irgendeine Idee, wie man pip IT IT ein Commit sagt? Dies wird in meinem Bereitstellungsskript ausgegeben und ich möchte nicht alle stderr unterdrücken.
Leonardo Arroyo

Wenn Sie nichts angeben, wie ist das Verhalten?
Scott Stafford

@ScottStafford Sie sollten keinen Zweig / Tag haben, der wie eine Festschreibungsnachricht aufgerufen wird. Das wäre ... seltsam.
Martin Thoma

Zusätzlich würde ich eine HTTPS-Version des git+Befehls erwähnen : pip install git+https://github.com/gpoore/codebraid@011464539bfb09b8611c8aef0d543532cea958bf. Dies kann für Personen wichtig sein, die hinter http-Proxys von Unternehmen stehen.
Grwlf

19

Ein zusätzlicher Kommentar zur Antwort von @ hugo-tavares:

Wenn es sich um ein privates GitHub-Repository handelt, müssen Sie Folgendes verwenden:

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

In deinem Fall:

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

12

Es ist möglich, ein Python-Paket mithilfe der Datei require.txt in Ihrem Projekt automatisch zu installieren, indem Sie einfach die folgende Zeile hinzufügen:

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

und führen Sie die Befehlszeile aus:

$ pip install -r requirements.txt


15
Für mich (pip 9.0.1 in python3.5 virtualenv) hat es nicht funktioniert: ausgelöst pip install -r requirements.txt'Anforderungsname konnte nicht erkannt werden , bitte geben Sie einen mit #gg =' an. Aber es funktionierte mit dem Format '-e git + github.com/owner/repository.git#egg=branch_or_commit '
Edouard Berthe

Sie müssen dieses Format in der Datei require.txt verwenden. Hast du das gemacht?
Mannysz

Ich habe es zum Laufen gebracht, aber das ist unklar. Sie müssen "package_name -e ..." und nicht nur "-e ..." am Anfang der Zeile haben.
Udi

1

Wenn Sie ein Eierpaket erstellen möchten, können Sie immer noch denselben @ branch_or_commit-Anhang verwenden: pip install git+ssh://git@github.com/myrepo.git@mybranch#egg=myeggscript

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.