पाइप के साथ विशिष्ट गिट प्रतिबद्ध स्थापित करें


172

मैं एक django ऐप विकसित कर रहा हूं और अपनी आवश्यकताओं को प्रबंधित करने के लिए पाइप का उपयोग कर रहा हूं। मैं एक विशिष्ट git के कमिट को कैसे स्थापित कर सकता हूं?

मेरे मामले में मुझे यह कमिट स्थापित करने की आवश्यकता है: https://github.com/aladagemre/django-notification/commit/2927346f4c513a217ac8ad076e494dd1adbfitf1

जवाबों:


281

आप हैश, शाखा का नाम, टैग निर्दिष्ट कर सकते हैं।

शाखा के नाम और टैग के लिए, आप एक संकुचित वितरण भी स्थापित कर सकते हैं। यह तेज़ और अधिक कुशल है, क्योंकि इसमें संपूर्ण रिपॉजिटरी को क्लोन करने की आवश्यकता नहीं है। GitHub उन बंडलों को स्वचालित रूप से बनाता है।

हैश:

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

शाखा का नाम

गिट के साथ

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

या स्रोत बंडल से

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

टैग

गिट के साथ

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

या स्रोत बंडल से

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

यह एक अच्छी तरह से प्रलेखित सुविधा नहीं है, लेकिन आप https://pip.pypa.io/en/latest/reference/pip_install.html#git पर अधिक जानकारी प्राप्त कर सकते हैं


24
यह इस मजेदार संदेश को जोड़ देगा:Could not find a tag or branch '2927346f4c513a217ac8ad076e494dd1adbf70e1', assuming commit.
vlad-ardelean

10
@ vlad-ardelean किसी भी विचार को कैसे बताएं कि क्या यह एक प्रतिबद्ध है? यह मेरी तैनाती स्क्रिप्ट पर आउटपुट हो रहा है और मैं सभी stderr को दबाना नहीं चाहता।
लियोनार्डो अरोयो

यदि आप कुछ भी निर्दिष्ट नहीं करते हैं, तो व्यवहार क्या है?
स्कॉट स्टैफ़ोर्ड

@ScottStafford आपके पास एक शाखा / टैग नहीं होना चाहिए जिसे एक प्रतिबद्ध संदेश की तरह कहा जाता है। यह ... अजीब होगा।
मार्टिन थोमा

इसके अलावा मैं git+कमांड के एक HTTPS संस्करण का उल्लेख करूंगा pip install git+https://github.com/gpoore/codebraid@011464539bfb09b8611c8aef0d543532cea958bf:। कॉर्पोरेट http परदे के पीछे के लोगों के लिए यह महत्वपूर्ण हो सकता है।
ग्रोवेल

19

@ ह्यूगो-टावर्स के जवाब के लिए एक अतिरिक्त टिप्पणी:

यदि यह एक निजी GitHub रिपॉजिटरी है, तो आपको उपयोग करने की आवश्यकता होगी:

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

आपके मामले में:

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

12

केवल निम्नलिखित पंक्ति को जोड़कर आप प्रोजेक्ट्स पर आवश्यकताओं के उपयोग से अजगर पैकेज को स्वचालित रूप से स्थापित करना संभव है:

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

और कमांड लाइन चलाएं:

$ pip install -r requirements.txt


15
मेरे लिए (python3.5 virtualenv में पाइप 9.0.1) यह काम नहीं किया: pip install -r requirements.txtउठाया 'आवश्यकता नाम का पता नहीं लगा सका, कृपया एक # अंडे के साथ निर्दिष्ट करें'। लेकिन इसने '-e git + github.com/owner/repository.git#egg=branch_or_commit ' प्रारूप के साथ काम किया
एडोअर्ड बर्थे

आपको आवश्यकताओं के अंदर इस प्रारूप का उपयोग करने की आवश्यकता है। क्या तुमने वह किया?
mannysz

मुझे यह काम मिला लेकिन यह स्पष्ट नहीं है। लाइन की शुरुआत में "package_name -e ..." और केवल "-e ..." की आवश्यकता नहीं है।
उदी

1

यदि आप एक अंडा पैकेज बनाना चाहते हैं, तो आप अभी भी उसी @branch_or_commit एपेंडेज का उपयोग कर सकते हैं: pip install git+ssh://git@github.com/myrepo.git@mybranch#egg=myeggscript

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.