क्या बुनियादी यूनिक्स कमांड्स का उपयोग करके एक गिट रिपॉजिटरी को कॉपी (क्लोन नहीं) करना ठीक है?


22

मैं git का उपयोग करने के लिए बहुत नया हूं और सोच रहा था कि क्या यह GIT रिपॉजिटरी को सामान्य UNIX कमांड (जैसे cpया tar/ untag) के बजाय कॉपी करने के लिए ठीक है git clone

मैं उस स्थिति में हूं जहां मेरे पास एक उत्पादन वातावरण (अजगर आभासी) है कि कुछ कोड ने उसमें गिट की जाँच की। मैं सोच रहा था कि यह एक बुरा दृष्टिकोण से एक बुरा विचार पूरे पर्यावरण की नकल करने के लिए एक tarया कुछ का उपयोग कर रहा है। यह दृष्टिकोण कोडबेस / पर्यावरण की त्वरित प्रतिलिपि बनाने के लिए सुविधाजनक होगा।

मेरी चिंता यह है कि शायद git क्लोन काम करने वाली कॉपी के साथ कुछ यूनिक आईडी जोड़ देता है, जिससे दो वर्किंग कॉपी मौजूद रहती हैं, जहां एक फाइलसिस्टम-कॉपी दूसरे से कॉपी करता है।


वाह मैं इस स्थिति में था क्योंकि मेरे पास स्रोत नियंत्रण के तहत कुछ फाइलें थीं और कुछ नहीं, और मेरे पास फाइल अनुमतियाँ थीं जिन्हें मुझे संरक्षित करने की आवश्यकता थी। मुझे खुशी है कि आपने यह सवाल पूछा।
जो सी सी

जवाबों:


21

यह पूरी तरह से ठीक है।

git अपने सभी इतिहास, कमिट आदि को साइट पर संग्रहीत करता है - यह एक डीसीवीएस की एक मौलिक संपत्ति है।

तकनीकी रूप से बोलना, gitकॉपी किए गए रिपॉजिटरी के साथ हर जगह बस ठीक से काम कर सकता है, क्योंकि DCVS का पूरा बिंदु यह है कि यह जानना जरूरी नहीं है कि किसी दिए गए रिपॉजिटरी के बाहर क्या चल रहा है , और वास्तव में जब तक आप इसे नहीं बताते हैं

यहां भी यही सिद्धांत लागू होता है।


1
मेरी समझ यह है कि एक क्लोन रिपॉजिटरी में माता-पिता का लिंक होगा। OS कॉपी कमांड का उपयोग करने से वह लिंक नहीं बनेगा।
टोनी

@ यह सही है, लेकिन आप उस लिंक का उपयोग करके हटा सकते हैं git remote remove origin, जो Git को एक अपस्ट्रीम के रूप में मूल रिपॉजिटरी का उपयोग करने से रोकता है।
new123456

2

आपको अपने सिस्टम पर पूरी कामकाजी निर्देशिका को कहीं और कॉपी करने में सक्षम होना चाहिए और Git, Hg, या SVN का उपयोग करते समय इसे सामान्य रूप से कार्य करना जारी रखना चाहिए। मैं अन्य SCM पर टिप्पणी नहीं कर सकता।


0

यह अधिक असामान्य उपयोग मामला है, लेकिन ...

मैंने repoउपयोगिता को .gitनिर्देशिका में प्रतीकात्मक लिंक बनाते देखा है । उस स्थिति में, जब आप एक कॉपी कर रहे होते हैं, तो आप यह सुनिश्चित करना चाहते हैं कि आप प्रतीकात्मक लिंक को डिरेल करें। उदाहरण के लिए:

cp -r -L <source-repo-dir> <destination-repo-dir>

0

यह ठीक है, लेकिन अगर आप अपना रेपो किसी और के साथ साझा करने वाले हैं, तो कृपया निम्नलिखित पर विचार करें :

  • configहो सकता है कि आपकी फ़ाइल में अन्य व्यक्ति की परवाह न हो।
  • आपके logsफ़ोल्डर में ऐसे संदर्भ होंगे जिन्हें आप साझा नहीं करना चाहते हैं। जब तक आप अंतिम परिणाम के साथ सहज नहीं होते हैं, तब तक आप अपने कंप्यूटर पर गंदा सामान देने से महान होते हैं, और फिर इसे दूरस्थ (कभी-कभी) साझा करने के लिए धक्का देते हैं। उस बुरा इतिहास में से कुछ आपके रिफ्लॉग में हो सकता है, इसलिए बेहतर है कि इसे आईएमएचओ साझा न करें।
  • आपकी info/excludeफाइल कुछ फाइलों को नजरअंदाज कर सकती है केवल आप अनदेखा करना चाहते हैं।
  • आपके पास हुक, शाखाएं, और अन्य सामान का एक गुच्छा हो सकता है जो व्यक्तिगत है और आप साझा नहीं करना पसंद करते हैं ...
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.