Zainstaluj specyficzne zatwierdzenie git za pomocą pip

Odpowiedzi:

281

Możesz określić skrót zatwierdzenia, nazwę gałęzi, tag.

Dla nazwy gałęzi i tagu możesz również zainstalować dystrybucję skompresowaną. Jest to szybsze i bardziej wydajne, ponieważ nie wymaga klonowania całego repozytorium. GitHub automatycznie tworzy te pakiety.

haszysz:

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

Nazwa oddziału

Z git

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

lub z pakietu źródłowego

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

etykietka

z git

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

lub z pakietu źródłowego

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

Nie jest to dobrze udokumentowana funkcja, ale więcej informacji można znaleźć pod adresem https://pip.pypa.io/en/latest/reference/pip_install.html#git

Hugo Tavares
źródło
24
Could not find a tag or branch '2927346f4c513a217ac8ad076e494dd1adbf70e1', assuming commit.
Doda
10
@ vlad-ardelean masz jakiś pomysł, jak powiedzieć pipowi, że TO JEST zatwierdzenie? To jest wyświetlane w moim skrypcie wdrażania i nie chcę pomijać wszystkich standardowych błędów.
Leonardo Arroyo
Jeśli nic nie określisz, jakie będzie zachowanie?
Scott Stafford,
@ScottStafford Nie powinieneś mieć gałęzi / tagu, który jest nazywany jak komunikat o zatwierdzeniu. To byłoby ... dziwne.
Martin Thoma,
Ponadto chciałbym wspomnieć wersję HTTPS z git+poleceniem: pip install git+https://github.com/gpoore/codebraid@011464539bfb09b8611c8aef0d543532cea958bf. Może to być ważne dla osób korzystających z korporacyjnych serwerów proxy HTTP.
grwlf
19

Dodatkowy komentarz do odpowiedzi @ hugo-tavares:

Jeśli jest to prywatne repozytorium GitHub, musisz użyć:

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

W Twoim przypadku:

pip install git+ssh://[email protected]/aladagemre/django-notification.git@2927346f4c513a217ac8ad076e494dd1adbf70e1
PGuiv
źródło
12

Możliwe jest automatyczne zainstalowanie pakietu Pythona przy użyciu pliku Requirements.txt w projekcie, po prostu dodając następujący wiersz:

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

i uruchom wiersz poleceń:

$ pip install -r requirements.txt

mannysz
źródło
15
Dla mnie (pip 9.0.1 w python3.5 virtualenv) nie zadziałało: pip install -r requirements.txtpodniesiono „Nie można wykryć nazwy wymagania, podaj jedną z # egg =”. Ale działało z formatem „-e git + github.com/owner/repository.git#egg=branch_or_commit
Edouard Berthe
Musisz użyć tego formatu w pliku Requirements.txt. Czy ty to zrobiłeś?
mannysz
Mam to działające, ale to jest niejasne. Trzeba mieć „nazwa_pakietu -e ...”, a nie tylko „-e…” na początku linii.
Udi
1

Jeśli chcesz stworzyć pakiet jajek, nadal możesz użyć tego samego dodatku @branch_or_commit: pip install git+ssh://[email protected]/myrepo.git@mybranch#egg=myeggscript

Dannid
źródło