Cài đặt cam kết git cụ thể với pip


Câu trả lời:


281

Bạn có thể chỉ định cam kết băm, tên chi nhánh, thẻ.

Đối với tên chi nhánh và thẻ, bạn cũng có thể cài đặt phân phối nén. Điều này nhanh hơn và hiệu quả hơn, vì nó không yêu cầu nhân bản toàn bộ kho lưu trữ. GitHub tạo các gói đó tự động.

băm:

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

Tên chi nhánh

Với git

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

hoặc từ gói nguồn

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

nhãn

với git

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

hoặc từ gói nguồn

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

Đây là một tính năng không được ghi chép đầy đủ, nhưng bạn có thể tìm thêm thông tin tại https://pip.pypa.io/en/latest/reference/pip_install.html#git


24
Nó sẽ thêm thông điệp thú vị này:Could not find a tag or branch '2927346f4c513a217ac8ad076e494dd1adbf70e1', assuming commit.
vlad-ardelean 11/05/2015

10
@ vlad-ardelean có ý kiến ​​gì về cách nói với Pip IT IS là một cam kết không? Điều này đang được xuất ra trên tập lệnh triển khai của tôi và tôi không muốn triệt tiêu tất cả các thiết bị lỗi chuẩn.
Leonardo Arroyo

Nếu bạn không chỉ định bất cứ điều gì, hành vi là gì?
Scott Stafford

@ScottStafford Bạn không nên có một nhánh / thẻ được gọi như thông điệp cam kết. Điều đó sẽ ... lạ.
Martin Thoma

Ngoài ra, tôi sẽ đề cập đến một phiên bản git+lệnh HTTPS : pip install git+https://github.com/gpoore/codebraid@011464539bfb09b8611c8aef0d543532cea958bf. Nó có thể quan trọng đối với những người đứng sau các proxy http của công ty.
grwlf

19

Một bình luận thêm cho câu trả lời của @ hugo-tavares:

Nếu đó là kho lưu trữ GitHub riêng tư, bạn sẽ cần sử dụng:

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

Trong trường hợp của bạn:

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

12

Có thể tự động cài đặt gói python bằng tệp tests.txt trên dự án của bạn chỉ bằng cách thêm dòng sau:

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

và chạy dòng lệnh:

$ pip install -r requirements.txt


15
Đối với tôi (pip 9.0.1 trong python3.5 virtualenv) nó không hoạt động: pip install -r requirements.txtđược nêu ra 'Không thể phát hiện tên yêu cầu, vui lòng chỉ định một tên có # egg ='. Nhưng nó hoạt động với định dạng '-e git + github.com/owner/reposeective.git#egg=branch_or_commit '
Edouard Berthe

Bạn cần sử dụng định dạng này bên trong tệp tests.txt. Bạn đã làm điểu đó?
mannysz

Tôi đã làm cho nó hoạt động nhưng điều này là không rõ ràng. Cần phải có "pack_name -e ..." và không chỉ "-e ..." ở đầu dòng.
Udi

1

Nếu bạn muốn tạo gói trứng, bạn vẫn có thể sử dụng cùng phụ lục @branch_or_commit: pip install git+ssh://git@github.com/myrepo.git@mybranch#egg=myeggscript

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.