2009-07-07 19 views
5

मेरे पास एक एसएसएच सर्वर सेटअप के साथ एक विंडोज 2003 बॉक्स है। मेरे पास msysgit (गिट संस्करण 1.6.2) स्थानीय और सर्वर दोनों पर स्थापित है।गलत रास्ते को हल करने से विंडोज़ पर एसएसएच के माध्यम से गिट को कैसे रोकें?

e:\vc\git\myrepo.git 

जब वह में एक उपयोगकर्ता के लॉग/वह अगले कार्य निर्देशिका में रखा जाएगा:

सर्वर मेरी रेपोस के लिए निम्न निरपेक्ष पथ है

e:\vc\git\ 

जब चल निम्नलिखित

git clone ssh://[email protected]/myrepo.git testrepo 

मैं निम्नलिखित त्रुटि मिलती है:: मेरे देव मशीन पर cmd

fatal: ''/myrepo.git'' does not appear to be a git repository 

मेरी ssh लॉग के अनुसार ऐसा लगता है कि Git सर्वर पर इस cmd को क्रियान्वित किया जाता है:

'cmd.exe /c git-upload-pack '/myrepo.git'' 

स्थानीय स्तर पर है कि आदेश निष्पादित (सर्वर पर) एक ही कारण के लिए विफल रहता है। मुझे लगता है कि समस्या गिट से संबंधित है जो पथ को '/' के साथ उपसर्ग कर रही है। मैं यह नहीं करने के लिए गिट कैसे कहूं? क्या यह काम कर रहा है?

नोट: गिट-अपलोड-पैक काम कर रहा है क्योंकि मैंने पथ में \ gitinstallpath \ libexec \ git-core जोड़ा है। जाहिर है यह एक बग है और भविष्य में तय किया जाएगा, यह मेरा काम था।

+0

क्या SSH सर्वर आप सर्वर पर चल रहे हैं? यूजर @ सर्वर के बाद यूआरएल का हिस्सा उस प्रारूप में होना चाहिए जो इसे समझता है। –

उत्तर

6

मैंने अपने एसएसएच सर्वर को winssh से openssh (सिग्विन परत के माध्यम से) स्विच करके इसे हल किया। मैं winsshd का उपयोग कर जुर्माना (ऊपर उल्लिखित) को जोड़ने में सक्षम था, लेकिन winsshd "/" के साथ prefixed पथ सही तरीके से संभाल नहीं था। मैं शायद काम करने के लिए winsshd मिल सकता है, लेकिन साइगविन और openssh पर स्विच तेजी से था।

यहाँ सेटअप प्रारंभ करें अपने इसी तरह की स्थिति में यदि किक करने के लिए एक good blog post है:

+1

+1। –

4

क्या आपने निम्न का प्रयास किया है?

git clone ssh://[email protected]/myrepo testrepo 

एसएसएच पथ के अंत से ".git" को हटाने पर ध्यान दें। यदि दूरस्थ निर्देशिका नाम में है तो आपको केवल उस प्रत्यय की आवश्यकता है।

इसके अलावा, क्या आपने किसी अन्य एसएसएच यूआरएल प्रारूप की कोशिश की है? एक रिश्तेदार पथ का उपयोग करने के लिए, तुम कोशिश कर सकते हैं:

git clone ssh://[email protected]/~/myrepo testrepo 

अन्य URL स्वरूपों के विवरण के लिए git clone man page देखें।

+0

1) डीआईआर में है .git। प्रश्न में तय टाइपो के लिए खेद है। 2) त्रुटि में परिणाम: घातक: ''/myrepo.git '' एक गिट भंडार प्रतीत नहीं होता है –

+0

मैंने यह भी कोशिश की है: ssh: // myuser @ myip: myrepo.git लेकिन ssh बंदरगाह के बारे में शिकायत करता है और कनेक्ट करने में सक्षम नहीं है। विंडोज़ पर एक गिट + एसएसएच सर्वर स्थापित करने के लिए महान ब्लॉग पोस्ट के लिए –

3

अगर किसी को अभी भी वैकल्पिक हल करने में रुचि:

समस्या है - cmd.exe एकल उद्धृत मानकों को नहीं समझता। तो हम इसके बजाय sh का उपयोग करें।

लाइन

साथ फ़ाइल gup.sh बनाएं
 
    git-upload-pack.exe $* 

और सर्वर पर

 
    git-receive-pack.exe $* 

साथ grp.sh!

तब चलाएँ:

 
    git clone -u 'sh gup.sh' ssh://[email protected]/e/vc/git/myrepo.git testrepo 
    git config remote.origin.uploadpack 'sh gup.sh' 
    git config remote.origin.receivepack 'sh grp.sh' 
संबंधित मुद्दे