Instal komit git tertentu dengan pip

Jawaban:

281

Anda dapat menentukan komit, nama cabang, tag.

Untuk nama cabang dan tag, Anda juga dapat menginstal distribusi terkompresi. Ini lebih cepat dan lebih efisien, karena tidak memerlukan kloning seluruh repositori. GitHub membuat bundel-bundel itu secara otomatis.

hash:

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

nama cabang

Dengan git

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

atau dari bundel sumber

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

menandai

dengan git

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

atau dari bundel sumber

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

Ini adalah fitur yang tidak terdokumentasi dengan baik, tetapi Anda dapat menemukan informasi lebih lanjut di https://pip.pypa.io/en/latest/reference/pip_install.html#git

Hugo Tavares
sumber
24
Ini akan menambahkan pesan menyenangkan ini:Could not find a tag or branch '2927346f4c513a217ac8ad076e494dd1adbf70e1', assuming commit.
vlad-ardelean
10
@ vlad-ardelean ada ide tentang cara memberi tahu pip ITU adalah commit? Ini dikeluarkan pada skrip deploy saya dan saya tidak ingin menekan semua stderr.
Leonardo Arroyo
Jika Anda tidak menentukan apa pun, apa perilakunya?
Scott Stafford
@ScottStafford Anda seharusnya tidak memiliki cabang / tag yang disebut seperti pesan komit. Itu akan ... aneh.
Martin Thoma
Selain itu saya akan menyebutkan versi HTTPS dari git+perintah: pip install git+https://github.com/gpoore/codebraid@011464539bfb09b8611c8aef0d543532cea958bf. Mungkin penting bagi orang di belakang proksi http perusahaan.
Grwlf
19

Komentar tambahan untuk jawaban @ hugo-tavares:

Jika itu adalah repositori GitHub pribadi, Anda harus menggunakan:

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

Dalam kasus Anda:

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

Mungkin untuk menginstal paket python secara otomatis menggunakan file requirement.txt pada proyek Anda hanya dengan menambahkan baris berikut:

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

dan jalankan baris perintah:

$ pip install -r requirements.txt

mannysz
sumber
15
Bagi saya (pip 9.0.1 di python3.5 virtualenv) tidak berfungsi: pip install -r requirements.txtmengangkat 'Tidak dapat mendeteksi nama persyaratan, harap sebutkan satu dengan # egg ='. Tapi itu bekerja dengan format '-e git + github.com/owner/repository.git#egg=branch_or_commit '
Edouard Berthe
Anda perlu menggunakan format ini di dalam file requirement.txt. Apakah kamu melakukan itu?
mannysz
Saya berhasil tetapi ini tidak jelas. Perlu memiliki "package_name -e ..." dan bukan hanya "-e ..." di awal baris.
Udi
1

Jika Anda ingin membuat paket telur, Anda masih bisa menggunakan appendage @branch_or_commit yang sama: pip install git+ssh://[email protected]/myrepo.git@mybranch#egg=myeggscript

Dannid
sumber