2012-01-08 12 views
10

मैं दो अलग-अलग गिट रेपो बनाए रखना चाहता हूं। Repos एक ही रूट निर्देशिका में रहना चाहिए। उसकी प्राप्ति कैसे हो?एक ही निर्देशिका में दो अलग गिट रेपो

मैं क्या चाहता हूं: दो रिपो का प्रबंधन करने के लिए थोड़ा अलग है। क्या मेरे पास एक ही फ़ोल्डर में दो पूरी तरह से अलग रिपोज़ हो सकते हैं?

git --work-tree=where/my/code/is --git-dir=some/path/to/my/.git status 

यह आपको 2 अलग रेपोस ही हिस्सा है करने की अनुमति होगी:

देखभाल :)

+0

[एक निर्देशिका में एक से अधिक Git संग्रह] (के संभावित डुप्लिकेट http://stackoverflow.com/questions/2519446/multiple-git-repositories- इन-वन-डायरेक्टरी) –

+0

और [यहां] (http://stackoverflow.com/questions/2065559/using-two-git-repos-in-one-folder), और [यहां] (http: // stackoverflow। कॉम/प्रश्न/436125/दो-गिट-रिपॉजिटरीज़-इन-वन-डायरेक्टरी), और [यहां] (http://grahamc.com/blog/multiple-git-repositories-one-directory-dotfiles/), .. –

+0

फर सेंट पोस्ट इस मुद्दे को बिल्कुल सही नहीं करता है। यह क्या उप-मॉड्यूलिंग है। मैं जो पूछ रहा हूं वह है: क्या मैं एक ही स्रोत फाइलों के आधार पर दो अलग-अलग प्रतिनिधि बना सकता हूं? – giga

उत्तर

10

के लिए धन्यवाद आप Git आदेश पर ही इन दो विकल्पों में से एक का उपयोग जोड़कर इस हासिल कर सकते हैं काम कर फ़ोल्डर

हालांकि आपको कई शाखाओं के साथ एक रेपो का उपयोग करके जो चाहिए उसे प्राप्त करने में सक्षम होना चाहिए और शायद कुछ शाखाओं को केवल कई रिमोट्स पर धक्का दें।

+0

हाँ, मैं चयनित कई शाखाओं के साथ समाप्त हो सकता है केवल ब्रंच। – giga

+2

मैंने एक स्क्रिप्ट भी बनाई जो ओवरलैड रेपो के साथ काम करना आसान बनाता है, और इसे पैकेज प्रबंधक के रूप में भी इस्तेमाल किया जा सकता है: https://github.com/capr/multigit – cap

2

मैंने इस समस्या को हल किया, जो गिट इसे हल करने के लिए गिट का उपयोग न करके एक अच्छा समाधान प्रदान नहीं करता है। मैंने एक नया सबफ़ोल्डर को मूल फ़ोल्डर के सबफ़ोल्डर से जोड़ने के लिए directory junction का उपयोग किया था (यानी एक बच्चे फ़ोल्डर को "चाचा फ़ोल्डर" से जोड़ना: पी)। कमान में उदाहरण Windows Vista के लिए और ऊपर के लिए प्रेरित करें:

cd CurrentFolder/ 
mklink /J "LinkedFolder" "../TargetFolder" 

LinkedFolder TargetFolder को इंगित करने के कारण होगा (टिप्पणी उद्धरण)। उदाहरण फ़ाइल संरचना मैं तो प्रयोग करेंगे:

  • जड़/
    • TargetFolder/
      • साझा फ़ाइलों
    • CurrentFolder/
      • LinkedFolder/

"POSIX-compliant" operating systems seem to use ln or ln -s for this functionality.

यह उत्कृष्ट काम करता है (ध्यान दें: निम्नलिखित अपने ही Windows 8.1 परीक्षण से है):

  • LinkedFolder जब आप लिंक बनाने mklink
  • कॉल करने से पहले अस्तित्व में नहीं है , जो भी आप लक्ष्यफॉल्डर या लिंक्डफोल्डर में फ़ाइलों में करते हैं, वे दूसरे में दिखाई देंगे, क्योंकि वे एक हैं और एक ही
  • यदि आप एल को हटाते हैं स्याही (LinkedFolder), वास्तविक लक्ष्य फ़ोल्डर (TargetFolder)
  • यदि आप वास्तविक लक्ष्य फ़ोल्डर (लक्ष्यफ़ोल्डर) को हटाते हैं, तो लिंक सक्रिय रहेगा (यह हटाया नहीं जाता है); यदि आप लिंक तक पहुंचने का प्रयास करते हैं, तो आपको बस एक त्रुटि मिल जाएगी; यदि आप फिर से वास्तविक लक्ष्य फ़ोल्डर (TargetFolder) को फिर से बनाते हैं, तो लिंक पहले के रूप में काम करना जारी रखेगा!

उम्मीद है कि यह किसी की सहायता करेगा। मैंने अभी इस सुविधा के बारे में सीखा है और मुझे यह पसंद है।

यह भी देखें:
NTFS Junction Point
NTFS Symbolic Link
Symbolic Link

संबंधित मुद्दे