आपको बस यह सुनिश्चित करने की आवश्यकता है कि रिपॉजिटरी को पता है कि काम का पेड़ कहां है और इसके विपरीत।
रिपॉजिटरी को यह बताने के लिए कि वर्क ट्री कहाँ है, कॉन्फ़िगरेशन मान सेट करें core.worktree। कार्य ट्री को यह बताने के लिए कि वह कहाँ है, यह git डाइरेक्टरी है, .it नाम की फ़ाइल जोड़ें (फ़ोल्डर नहीं!) और एक पंक्ति जोड़ें
gitdir: /path/to/repo.git
चूंकि git 1.7.5 init कमांड ने इसके लिए एक अतिरिक्त विकल्प सीखा है।
आप के साथ एक नया अलग भंडार शुरू कर सकते हैं
git init --separate-git-dir /path/to/repo.git
यह अलग-अलग डायरेक्टरी में git रिपॉजिटरी को इनिशियलाइज़ करेगा और वर्तमान डायरेक्टरी में .it फ़ाइल को जोड़ेगा, जो नए रिपॉजिटरी की वर्किंग डायरेक्टरी है।
पहले 1.7.5 के लिए आपको कुछ अलग मापदंडों का उपयोग करना था और .git फ़ाइल को स्वयं जोड़ना था।
एक अलग रिपॉजिटरी को इनिशियलाइज़ करने के लिए निम्न कमांड रिपोजिटरी के साथ कार्य-वृक्ष को जोड़ता है:
git --git-dir=/path/to/repo.git --work-tree=. init && echo "gitdir: /path/to/repo.git" > .git
आपकी वर्तमान निर्देशिका वर्किंग ट्री होगी और git रिपॉजिटरी का उपयोग करेगा /path/to/repo.git। इनिट कमांड स्वचालित core.worktreeरूप से --git-dirपैरामीटर के साथ निर्दिष्ट मान को सेट करेगा ।
आप इसके लिए एक उपनाम भी जोड़ सकते हैं:
[alias]
initexternal = !"f() { git --work-tree=. --git-dir=\"$1\" init && echo \"gitdir: $1\" >> .git; }; f"
रीड-ओनली वर्किंग डायरेक्टरी पर git वर्जन कंट्रोल का उपयोग करें
ऊपर दिए गए ज्ञान के साथ, आप लेखन अनुमति के बिना किसी कार्यशील निर्देशिका के लिए git संस्करण नियंत्रण भी सेट कर सकते हैं। यदि आप या तो --git-dirहर git कमांड पर उपयोग करते हैं या रिपॉजिटरी (वर्किंग डायरेक्टरी के बजाय) से हर कमांड को निष्पादित करते हैं, तो आप .गित फ़ाइल को छोड़ सकते हैं और इसलिए वर्किंग डायरेक्टरी के भीतर किसी भी फाइल को बनाने की आवश्यकता नहीं है। Leos जवाब भी देखें