GIT सर्वर का सेटअप कैसे करें? Whats नंगे / गैर-नंगे repos?


10

मैं एक साधारण GIT सर्वर सेटअप करने का प्रयास कर रहा हूं। मेरे पास Ubuntu एक वर्चुअल पीसी (वर्चुअल बॉक्स) पर स्थापित है। मैंने जीआईटी स्थापित किया, रेपो आदि बनाया

git init 
git add .
git commit "..."

फिर विंडोज पर, मैंने नीचे कुछ ऐसा किया (साइबरविन पर)

git clone jiewmeng@192.168.0.3:proj1

तब बदलाव लाने की कोशिश की

git कमिटम "..."

लेकिन कुछ ऐसा मिला

छवि देखें

मुझे लगता है कि मेरे पास सेटअप GIT गलत है? मैं नंगे / गैर-नंगे रेपो के साथ क्या करने के लिए कुछ पढ़ता हूं? क्या मुझे हर समय नंगे का उपयोग करना चाहिए? मैंने कोशिश की

git checkout --bare jiewmeng@192.168.0.3:proj1 

लेकिन इसमें मिला proj1.git, अजीब फ़ाइलों / फ़ोल्डरों की तरह (HEAD आदि) भीतर। जीआईटी स्थापित करने का उचित तरीका क्या है?

किसी को भी नंगे / गैर-नंगे repos की व्याख्या कर सकते हैं, मैं एक तरह से खो गया हूँ, GitHub के साथ, ऐसी कोई बात नहीं है!

अद्यतन 28 अप्रैल 2011 6 बजे यूटीसी + 8

मैंने http://www.youtube.com/watch?v=1gNFrPNF9-Y और उबंटू (सर्वर) पर चलने की कोशिश की

git init --bare

उसके बाद विंडोज (क्लाइंट / सिगविन) पर किया

git init 
// added readme.txt 
git add .
git commit -m "..."
git remote add origin master jiewmeng@192.168.0.3:proj2
git push origin master

कोई त्रुटि ठीक नहीं लगती। लेकिन उबंटू पर, मैं नहीं देखता कि मेरी फाइलें कहां हैं? मैं branches/वहाँ में 1 theres nth के लिए देखा ?

जवाबों:


9

"सामान्य" रिपॉजिटरी एक निर्देशिका है जिसमें वास्तविक रिपॉजिटरी, और एक काम करने वाली कॉपी है। वास्तविक भंडार नाम के साथ एक छिपे हुए उपनिर्देशिका में स्थित है .git। वर्किंग कॉपी वे फाइलें और निर्देशिकाएं हैं जिनके साथ आप काम करते हैं।

एक "नंगे" रिपॉजिटरी केवल .gitनिर्देशिका की सामग्री है , काम की नकल के बिना।

आप एक नंगे भंडार पर काम नहीं कर सकते। आपको पहले नंगे रिपॉजिटरी को एक सामान्य रिपॉजिटरी में क्लोन करना होगा, फिर क्लोन पर काम करना होगा।

अपने पहले प्रयास में आपने "सामान्य" भंडार बनाया। फिर आपने वह क्लोन किया। फिर आपने सामान्य भंडार पर वापस धकेलने की कोशिश की। फिर आपको एक चेतावनी मिली। आपको एक सामान्य भंडार में नहीं धकेलना चाहिए। जब आप ऐसा करने का प्रयास करते हैं तो आपको चेतावनी दी जाती है। आपको केवल एक नंगे भंडार पर धकेलना चाहिए।

अपने दूसरे प्रयास में आपने "नंगे" भंडार का निर्माण किया। फिर आपने "सामान्य" भंडार बनाया। फिर आपने सामान्य से नंगे भंडार में धकेल दिया। यह अपेक्षित वर्कफ़्लो में से एक है। यही कारण है कि आपको कोई त्रुटि या चेतावनी नहीं मिली।

जब आप अपने प्रोजेक्ट पर विंडो मशीन और ubuntu मशीन से काम करना चाहते हैं तो आपके पास दो विकल्प हैं:

  1. एक नंगे भंडार (जहाँ कोई फर्क नहीं पड़ता) बनाएँ। फिर उस रिपॉजिटरी से क्लोन किया जाता है, एक विंडोज़ मशीन पर और एक ubuntu मशीन पर। अब क्लोन से नंगे रिपोजिटरी पर पुश करें, और नंगे रिपॉजिटरी से क्लोन पर खींचें। सामान्य रिपॉजिटरी पर धक्का न दें।

  2. दो सामान्य रिपोजिटरी बनाएं, एक विंडोज़ मशीन पर और एक ऑबंटू मशीन पर। अब, ubuntu पर काम करते समय, आप विंडोज़ मशीन से खींच सकते हैं और इसके विपरीत। एक-दूसरे को धक्का न दें।

निचला रेखा: केवल कभी-कभी नंगे रिपोजिटरी पर धक्का। अन्य सभी मामलों में, जब आपको लगता है कि आप ए से बी को धक्का देना चाहते हैं, इसके बजाय, बी पर जाएं तो ए से खींचें।

ऐसा लगता है कि आप बहुत नए हैं। कृपया निम्नलिखित बहुत अच्छी पुस्तकों में से एक या दोनों को पढ़ें : Git Book , Pro Git


1
हम्म मुख्य अध्ययन बिंदु की तरह लगता है " केवल कभी-कभी नंगे रिपोजिटरी पर धक्का दें। अन्य सभी मामलों में, जब आपको लगता है कि आप ए से बी तक धक्का चाहते हैं, इसके बजाय, बी पर जाएं तो ए से खींचें "। यदि हां, GitHub यह कैसे करता है? मैं इसे सही करने के लिए धक्का (nv पहले से ही जागने के लिए इस्तेमाल किया ...)?
Jiew मेंग

@JiewMeng: GitHub नंगे रिपोजिटरी का उपयोग करता है। वेबसाइट सीधे Git से डेटा पढ़ती है और उसे वर्कडायर की आवश्यकता नहीं है।
user1686

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