linux गिट और हार्ड लिंक




git hyperlink (4)

यह ध्यान में रखते हुए कि GIT रिपॉजिटरी के बाहर इंगित प्रतीकात्मक लिंक नहीं पहचानता है, क्या हार्ड लिंक का उपयोग करने में कोई समस्या है?

Git उन्हें तोड़ सकता है? क्या आप कृपया विस्तृत जानकारी के लिए मुझसे बात कर सकते हैं?


ठीक है, अब यह एक देर उत्तर = डी है

मुझे पता चला कि, हुक का उपयोग करते हुए, आप git pull event (जब खींचने के लिए कुछ है ...) को स्क्रिप्ट ईवेंट हैंडलर को .git/hooks/post-merge फ़ाइल में कैप्चर कर सकते हैं।

सबसे पहले, आपको chmod +x इसे।

फिर, प्रत्येक पुल पर हार्ड लिंक को पुन: बनाने के लिए इसके अंदर ln आज्ञाएं डाल ln । नमस्ते हुह!

यह काम करता है, मुझे इसकी जरुरत है कि मेरे प्रोजेक्ट के लिए और ls -i पता चलता है कि फ़ाइलों को pull बाद स्वचालित रूप से लिंक किया गया था।

.git/hooks/post-merge का मेरा उदाहरण:

#!/bin/sh
ln -f $GIT_DIR/../apresentacao/apresentacao.pdf $GIT_DIR/../capa/apresentacao.pdf
ln -f $GIT_DIR/../avaliacoesMono/avaliacao_monografias_2011_Nilo.pdf $GIT_DIR/../capa/avaliacoes.pdf
ln -f $GIT_DIR/../posters/poster_Nilo_sci.pdf $GIT_DIR/../capa/poster.pdf
ln -f $GIT_DIR/../monografia/monografia_Nilo.pdf $GIT_DIR/../capa/monografia_Nilo.pdf

महत्वपूर्ण: जैसा कि आप देख सकते हैं, आपके रिपॉजिटरी में किसी भी फाइल का पथ $GIT_DIR शुरू होना चाहिए, फिर फाइल में आंशिक रिश्तेदार पथ को जोड़ना चाहिए।

इसके अलावा महत्वपूर्ण: -f आवश्यक है, क्योंकि आप गंतव्य फ़ाइल को पुनः प्राप्त कर रहे हैं।


Google 'git हार्ड लिंक को संरक्षित करता है' और यह दिखाता है कि जीआईटी को पता नहीं है कि डिजाइन के जरिए हार्ड लिंक स्ट्रक्चर एएफएआईके को कैसे संरक्षित किया जाए।

वेब प्रोजेक्ट्स का उपयोग हार्ड लिंक्स निम्नानुसार है:

www/products/index.php
www/products/dell_latitude_id577/index.php #(hard linked to above)
www/products/dell_inspiron_id323/index.php #(hard linked again to above)

[email protected]:www/products$ ls -l index.php
-rwxr-xr-x 3 me me 1958 Aug 22 22:10 index.php*

अगर मैं index.php में परिवर्तन करना चाहता हूं तो मैं इसे एक स्थान में बदलता हूं और हार्ड लिंक (उत्पाद विवरण पृष्ठ) में परिवर्तन को इंगित करता हूं - जीआईटी को क्लोन करने और अन्य कंप्यूटरों पर खींचने के दौरान इस रिश्ते को संरक्षित नहीं करता।

[email protected]:www$ git pull

किसी अन्य मशीन पर प्रत्येक हार्ड लिंक के लिए एक नया index.php बनाएगा I


इस msysgit मुद्दे से

जंक्शन के अंक प्रतीकात्मक लिंक नहीं हैं; इसलिए, प्रतीकात्मक लिंक बस msysGit में असमर्थित हैं

इसके अलावा, गिट ने कभी कड़ी मेहनत नहीं ली थी

यह समस्या विंडोज-उन्मुख थी (चूंकि यह मैसेजिट के बारे में है) और सिमलिंक के संभावित समर्थन के बारे में बहस।
लेकिन कड़ी मेहनत के बारे में टिप्पणी में सामान्यत: जीआईटी का सवाल है।


'ट्री' ऑब्जेक्ट, जीआईटी में डायरेक्टर्स का प्रतिनिधित्व करते हैं, फाइल नाम और (उपसमुच्चय) अनुमतियां स्टोर करती हैं। यह इनोड नंबर (या अन्य प्रकार की फ़ाइल आईडी) को संग्रहित नहीं करता है इसलिए, गिट में हार्ड लिंक का प्रतिनिधित्व नहीं किया जा सकता है , कम से कम तीसरे पक्ष के उपकरणों जैसे मेटास्टोर या जीआईटी-कैश-मेटा (और मुझे यकीन नहीं है कि उन उपकरणों के साथ भी संभव है) के बिना।

गिट फ़ाइलों को छूने की कोशिश करता है जिन्हें इसे अपडेट करने की आवश्यकता नहीं है, लेकिन आपको यह ध्यान रखना होगा कि git हार्डलिंक को संरक्षित करने का प्रयास नहीं करता है, इसलिए उन्हें git द्वारा तोड़ा जा सकता है

रिपॉजिटरी के बाहर इंगित करने वाले प्रतीकात्मक लिंक के बारे में: जीआईटी के पास उनके साथ कोई समस्या नहीं है और इन्हें प्रतीकात्मक लिंक की सामग्री को संरक्षित रखना चाहिए ... लेकिन ऐसे लिंक की उपयोगिता मेरे लिए संदेहास्पद है, चाहे वे सिमलिंक्स टूट जाएंगे या नहीं, फाइल सिस्टम लेआउट के बाहर git repository पर निर्भर करता है , और git के नियंत्रण में नहीं।







hardlink