2012-03-13 21 views
5

ध्यान दें कि यह मूल लेख मैं साथ साथ निम्नलिखित किया गया है है:
http://www.markdotto.com/2011/11/02/how-to-deploy-sites-via-github/जारी करना रिमोट सर्वर पर GitHub निजी रेपो क्लोनिंग

आप पृष्ठभूमि का एक सा देने के लिए: हम एक निजी रेपो सेट अप के तहत है एक संगठन खाता हमारे पास तीन डेवलपर हैं (स्वयं शामिल हैं) जिनके पास गिटहब के साथ हमारे खाते हैं और निजी रिपो के लिए व्यवस्थापक अधिकार हैं।

प्रोजेक्ट पर काम करते समय हम रेपो क्लोन करते हैं और फिर 'देव' शाखा बनाते हैं। हम प्रत्येक अपनी स्वयं की देव शाखा से काम करते हैं और गिटहब पर 'देव' शाखा में परिवर्तन को धक्का देते हैं।

हम इस देव शाखा को हमारे रिमोट सर्वर पर प्राप्त करना चाहते हैं ताकि हम इसे हमारे मास्टर शाखा में विलय करने से पहले संयुक्त कोड कार्यों का परीक्षण कर सकें (जो स्वच्छ/हमेशा तैनाती योग्य होना चाहिए)।

यहाँ से हम उपरोक्त लेख चरणों SSH के माध्यम से हमारे सर्वर से कनेक्ट करने, प्रासंगिक निर्देशिका जहां हमारी वेबसाइट की मेजबानी की और निम्न आदेश चला जाता है के लिए जाना है जो निम्नलिखित कर रहे हैं ...

git clone [email protected]:ORGANISATION/REPO.git dev

पहला मुद्दा हम था हमारे सर्वर संदेश दिया था ...

Cloning into dev... 
ssh: connect to host github.com port 22: Connection refused 
fatal: The remote end hung up unexpectedly 

... मैं कहाँ होता है यह इसके पासवर्ड के लिए हमें पूछने के लिए उम्मीद?

बजाय हम HTTP URL कोशिश की ...

git clone https://[email protected]/ORGANISATION/REPO.git dev

... आप HTTP URL अब अपने ही USERNAME उपयोग करता है जब क्लोनिंग पर ध्यान देंगे। मैं अपना पासवर्ड दर्ज करें और यह Cloning into dev... को प्रदर्शित करता है, लेकिन फिर यह निम्न त्रुटि प्रदर्शित करता है ...

error: SSL certificate problem, verify that the CA cert is OK. Details: 
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://[email protected]/StormCreative/MoneyRepublic.com.git/info/refs 
fatal: HTTP request failed 

... मैं त्रुटि समझ में नहीं आता।

तो हम अपने निजी रेपो को हमारे सर्वर पर कैसे क्लोन कर सकते हैं?

किसी भी मदद की सराहना की!

सधन्यवाद, मार्क

+0

[HTTPS github access] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/3777075/https-github-access) – ralphtheninja

उत्तर

10

पहला मुद्दा होता है क्योंकि आप स्थानीय RSA कुंजी GitHub पर आपके खाते से लिंक (और हाँ, आप अपने खाते में RSA कुंजी लिंक नहीं है, और संगठन है आपके खाते से भी जुड़ा हुआ है)।

ssh-keygen -t rsa 

जब आप कुंजी पैदा कर रहे हैं, तो आप एक पासवर्ड और एक चुना है:

स्थानीय मशीन (या दूरस्थ सर्वर) जहां भंडार क्लोन करने के लिए कोशिश कर रहे हैं, आप एक आरएसए कुंजी उत्पन्न करने की जरूरत है id_rsa.pub फ़ाइल को स्टोर करने के लिए जगह, जिसमें वास्तव में कुंजी होती है।

गिटहब पर, आपको यह खाता, id_rsa.pub की सटीक सामग्री को अपने खाता व्यवस्थापन पैनल पर अपनी एसएसएच कुंजी में जोड़ने की आवश्यकता है।

+0

उत्तर के लिए धन्यवाद। मैंने 'ssh-keygen -t rsa -C "my-github-email-account" कमांड का उपयोग करके एक एसएसएच उत्पन्न करने का प्रयास किया है और इसके बाद "फ़ाइल दर्ज करें जिसमें कुंजी को सहेजने के लिए प्रविष्ट करें (/root/.ssh/id_rsa): "मैंने" github_mark "रखा और फिर पासफ्रेज (दो बार) दर्ज किया। लेकिन मुझे एसएसएच कुंजी डेटा नहीं मिल रहा है जिसे मुझे कॉपी करने की आवश्यकता है ताकि मैं इसे गिटहब के https://github.com/settings/profile#ssh_bucket पृष्ठ में जोड़ सकूं? – Integralist

+0

मैं यह भी मानता हूं कि '/ root/.ssh/id_rsa' एकाधिक कुंजी रख सकता है इसलिए मैं पासफ्रेज दर्ज करने से पहले' github_mark' का नाम क्यों दर्ज कर सकता था। – Integralist

+0

यही कारण है कि वे आपको "फ़ाइल दर्ज करें जिसमें कुंजी (/root/.ssh/id_rsa)" भाग को सहेजने के लिए कुछ भी लिखना नहीं है। बस एंटर दबाएं, पासवर्ड चुनें और सार्वजनिक कुंजी उस सटीक पथ (/root/.ssh/id_rsa) में होगी। –

0

मुझे यकीन नहीं है कि मैं आपको त्रुटि के साथ आपकी मदद कर सकता हूं जो मुझे एक एसएसएल समस्या की तरह दिखता है। लेकिन मैं आपको एक और दृष्टिकोण सुझा सकता हूं।मैं अपने ब्लॉग पर अपने ब्लॉग पर इस तरह से तैनात करता हूं:

  • मैंने तैनाती नामक सर्वर पर एक गिट रेपो बनाया है।
  • मैंने अपने स्थानीय रेपो के रिमोट के रूप में इस तैनाती रेपो को जोड़ा है।
  • जब मैं तैनाती करना चाहता हूं तो मैं इस रेपो में परिवर्तन को धक्का देता हूं।
  • मेरे तैनाती रेपो के अंदर मैंने पोस्ट-प्राप्त हुक सेट किया है ताकि जब भी परिवर्तन धक्का दिया जाता है तो यह स्वचालित रूप से अपाचे की मेजबान निर्देशिका के अंदर सर्वर पर रेपो क्लोन करता है जो मेरी वेबसाइट के नवीनतम संस्करण को प्रदान करता है।

यदि आपको इसकी आवश्यकता हो तो मैं आपको पोस्ट-प्राप्त हुक के बारे में जानकारी प्रदान कर सकता हूं। यदि आपकी वेबसाइट रेल में है तो आप तैनाती के लिए कैपिस्ट्रानो का उपयोग कर सकते हैं।

संपादित करें: यहाँ अपनी पोस्ट-प्राप्त हुक

है
GIT_REPO=$HOME/aliirz.git 
PUBLIC_WWW=/var/www/myrepo 

git clone $GIT_REPO $PUBLIC_WWW 
exit 

सादर

संपादित करें: drgomesp का जवाब ऊपर पूरी तरह से समाधान है। इसने मेरे दिमाग को छोड़ दिया कि आपको अपनी एसएसएच कुंजी की आवश्यकता है ताकि वह गितूब के साथ जुड़ सके।

+0

फीडबैक के लिए धन्यवाद - मैं बस @drgomesp से कुछ फीडबैक का इंतजार कर रहा हूं, इसलिए हाँ, मैं उस पोस्ट-हुक हुक को देखना चाहता हूं जो इससे भी मदद कर सकता है। – Integralist

+0

हाँ कृपया अगर आप अपने पोस्ट-प्राप्त हुक को भेज सकते हैं क्योंकि ऐसा लगता है कि इस समय ड्रोगोमेस्प का समाधान काम नहीं कर रहा है (हमारी चर्चा देखें) – Integralist