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/django-notification.git@v2.1.0

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


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://git@github.com/....

Dalam kasus Anda:

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

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


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://git@github.com/myrepo.git@mybranch#egg=myeggscript

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.