परियोजना फ़ोल्डर के बिना git क्लोन


85

मैंने सर्वर तक पहुंच दी है, और अपने रूट फ़ोल्डर में git रेपो को क्लोन करना चाहता हूं। लेकिन जब मैं क्लोन क्लोन करता हूं तो यह मुझे प्रोजेक्ट नाम के साथ फ़ोल्डर बना देगा, और मेरा प्रोजेक्ट फ़ोल्डर मेरा रूट है। मेरे पास मेरे मूल फ़ोल्डर तक मेरी पहुंच नहीं है

/var/www/sites/mysite/

और जब मैं फ़ोल्डर संरचना क्लोनिंग करूँगा

/var/www/sites/mysite/mysite

2
अपाचे / पसंद के वेबसर्वर में .it वितरित नहीं करना सुनिश्चित करें।
mnagel

1
क्या इससे आपके सवाल का जवाब मिलता है? GitHub रिपॉजिटरी की क्लोन सामग्री (बिना फ़ोल्डर के)
Vishrant

जवाबों:


193

git cloneएक अंतिम तर्क को स्वीकार करता है जो गंतव्य निर्देशिका है, यह डिफ़ॉल्ट रूप से परियोजना का नाम है लेकिन आप इसे बदल सकते हैं। अपने मामले में आप शायद बस चाहते हैं .:

$ git clone origin-url .

लेकिन ध्यान दें कि man git-clone: से

मौजूदा निर्देशिका में क्लोनिंग की अनुमति केवल तभी दी जाती है जब निर्देशिका खाली हो।


4
git clone @rodrigo ./heaven
a_m_dev

और दो स्तरों के क्लोनिंग के बारे में कैसे? मेरे पास pom.xml के शीर्ष पर दो फ़ोल्डर हैं?
Bionix1441

1
@ Bionix1441: मैं आपकी निर्देशिका संरचना के बारे में नहीं जानता, लेकिन अगर आप सिर्फ लिखने से दो स्तर नीचे हैं git clone aaa/bbb। यदि आप दो स्तर ऊपर करना चाहते हैं तो आप कोशिश कर सकते हैं git clone ..लेकिन वह काम नहीं करेगा क्योंकि आपके माता-पिता का निर्देशन कभी खाली नहीं होता है।
रॉडरिगो

संरचना निम्नलिखित है folder1\folder2\pom.xml, मुझे केवल pom.xmlउसी स्तर पर फ़ोल्डर्स और फ़ोल्डर्स की आवश्यकता हैpom.xml
Bionix1441

34

आप बस एक नया रेपो सेटअप कर सकते हैं और फिर ट्रैकिंग रिमोट और ब्रांच:

git init .
git remote add origin git@github.com:user/repo.git
git fetch origin
git checkout master

यह तब भी काम नहीं करेगा जब रेपो के पास पैरेंट फोल्डर हो
Hittz

मैच करने के लिए अपस्ट्रीम ब्रांच भी सेट करना पड़ा: git branch --set-upstream-to=origin/master master फिर रिमोट ब्रांच में स्थानीय बदलावों को आगे बढ़ाना पड़ा: git push --force इसने पुराने रिमोट ब्रांच को मेरे लोकल अप टू डेट कॉपी के साथ बदल दिया।
डैनियल जेडए

7

यह विंडोज पर भी अच्छा काम कर रहा है।

git init
git remote add origin git@github.com:user/repo.git
git pull origin master

5

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

$ mv /var/www/sites/mysite/mysite/* /var/www/sites/mysite`
$ mv /var/www/sites/mysite/mysite/.* /var/www/sits/mysite`
$ rmdir /var/www/sites/mysite/mysite

4

आप अपने प्रोजेक्ट को सबफ़ोल्डर में क्लोन कर सकते हैं और वे .gitफ़ोल्डर सहित सभी फ़ाइलों को पैरेंट फ़ोल्डर (आपकी रूट) में ले जाते हैं।


3
कारण है कि यह और अधिक आसानी से नहीं किया जा सकता, Git क्लोन git@github.com की तरह:। जो कुछ भी \
dzona

यह कर सकते हैं, देखें rodrigos जवाब। लेकिन मुझे पता है कि एक git रेपो केवल फाइलों का एक गुच्छा है जिसे स्वतंत्र रूप से चारों ओर ले जाया जा सकता है, यह उत्तर याद रखना आसान है।
mnagel

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