Git .itignore में नए अपवादों का पालन नहीं करता है


3

[ नोट : यह सामान्य नहीं है "Git अभी भी उन फ़ाइलों को ट्रैक करता है जिन्हें मैंने अभी जोड़ा गया है। .ignignore!" संकट। यह उसी के विपरीत है।]

मेरे पास Git रिपॉजिटरी में वेबसाइट की पूर्ण निर्देशिका संरचना है। CMS I का उपयोग डिफ़ॉल्ट रूप से .gitignore फ़ाइल के साथ आता है:

# Ignore paths that contain user-generated content.
sites/*/files/
sites/*/private/

ध्यान दें कि सभी साइट / * / फ़ाइल निर्देशिका को बाहर रखा गया है। लेकिन जिस तरह से मैं अपनी साइटें करता हूं, उसमें एक विशेष सबफ़ोल्डर है जिसे मैं रेपो में शामिल करना चाहता हूं। इसलिए उपरोक्त .OPignore के साथ अपना रेपो शुरू करने के बाद, मैंने इसे इसमें संशोधन किया:

# Ignore paths that contain user-generated content.
sites/*/files/
!sites/*/files/content/
!sites/*/files/content/*
sites/*/private/

मेरी समझ से, मेरे द्वारा ऊपर जोड़े गए नकारात्मक पैटर्न का मतलब यह होना चाहिए कि साइटें / * / फ़ाइलें / सामग्री / और इसकी सामग्री रेपो में शामिल हैं, लेकिन बाकी साइटों / * / फ़ाइलों को अनदेखा किया गया है। और जब मैं अपना पहला कमिट करने से पहले अपनी .gitignore फाइल को अपडेट करना याद करता हूं, तो यह योजनाबद्ध तरीके से काम करता है।

लेकिन जब मैं बाद में .gitignore को अपडेट करना भूल जाता हूं, जैसा कि मैं करने के लिए अभ्यस्त हूं, तो मुझे .itignore फ़ाइल को पूरी तरह से अनदेखा करने के लिए मजबूर किए बिना नई फ़ाइलों को जोड़ने के लिए Git नहीं मिल सकता है। मैं इसे चलाता हूं:

> git add sites/default/files/content/

और इसे वापस प्राप्त करें:

The following paths are ignored by one of your .gitignore files:
sites/default/files
Use -f if you really want to add them.
fatal: no files added

क्यों हाँ, Git, उस निर्देशिका को .gitignore के लाइन 2 पर ध्यान नहीं दिया गया है, लेकिन लाइनों 3 और 4 में उस विशिष्ट फ़ोल्डर के लिए एक अपवाद बनाने के लिए कहा गया है, जिसके बारे में मैंने आपसे पूछा था!

मुझे पता है कि मैं इसे सीधे जोड़ने के लिए -f का उपयोग कर सकता हूं, लेकिन फिर मुझे इसे फिर से किसी भी भावी प्रतिबद्ध पर करना होगा जो उस निर्देशिका में फ़ाइलों को जोड़ता है।

पृष्ठ नहीं है सब से अधिक वेब कि कैसे अद्यतन करने .gitignore Git पहले से ही ट्रैक फ़ाइलों की अनदेखी नहीं कर सकता के बारे में बात है, लेकिन मैं कुछ भी है कि के बारे में यह कैसे Git नव अपवादित फ़ाइलों को ट्रैक नहीं है बात करती है नहीं मिल रहा।

बहुत सी जगहों का कहना है कि git update-indexइस तरह की समस्याओं को हल करने के लिए इस्तेमाल किया जा सकता है, लेकिन मैं इसे मेरे लिए काम करने के लिए प्रतीत नहीं कर सकता। इसके बारे में एक लाख संभव झंडे हैं, इसलिए शायद मैं सही एक (या कई के संयोजन) पर ठोकर नहीं खाई।

TL; DR : मैं अपनी .itignore फ़ाइल में Git को नए बहिष्करण कैसे बना सकता हूं?

जवाबों:


2

मुझे लगता है कि यह उत्तर इसे सबसे अच्छा समझाता है। नकारात्मक केवल उन फ़ाइलों को फिर से शामिल करने के लिए काम करता है जिन्हें किसी अन्य नियम द्वारा स्पष्ट रूप से अनदेखा किया गया है। जब आप एक संलग्न निर्देशिका को अनदेखा करते हैं, तो Git भी इसमें नहीं उतरता है और इसलिए यह कभी नहीं देखता है, और न ही स्पष्ट रूप से आपकी फ़ाइल को बाहर करता है।

ऊपर दिए गए उत्तर का उत्तर आपको समाधान देता है: आपको एक या एक से अधिक नियम बनाने होते हैं जो रास्तों का एक सेट बनाते हैं जो स्पष्ट रूप से आपकी फ़ाइल को शामिल करने के लिए इच्छित सब कुछ को बाहर करता है जिस बिंदु पर आप इसके लिए बहिष्करण को नकार सकते हैं या इसके किसी भी निर्देशिका युक्त।


असल में, दूसरा उत्तर अनावश्यक रूप से जटिल है; पहला उत्तर मुझे चाहिए था। मुझे बस इतना करना था कि मेरे चिपकाया गया पंक्ति 2 को बदल दिया जाए। ऊपर से .ignignore sites/*/files/*, और सब कुछ अब बढ़िया काम करता है। धन्यवाद!
75 वीं ट्रॉम्बोन

1

इसी तरह की समस्या के लिए उत्तर की तलाश में Google मुझे यहाँ लाया। मैं जो भी करना चाहता था, वह एक एकल कॉन्फ़िगरेशन फ़ाइल का ट्रैक रखता है अन्यथा अन-संशोधित लाइब्रेरी में।

इसे पूरा करने के लिए मुझे प्रत्येक फ़ोल्डर को शामिल करना / बाहर करना पड़ा, जब तक कि मैं जिस फ़ाइल को बाहर करना चाहता था:

vendor/* !vendor/tfox/ vendor/tfox/* !vendor/tfox/mpdf-port-bundle/ vendor/tfox/mpdf-port-bundle/* !vendor/tfox/mpdf-port-bundle/TFox/ vendor/tfox/mpdf-port-bundle/TFox/* !vendor/tfox/mpdf-port-bundle/TFox/MpdfPortBundle/ vendor/tfox/mpdf-port-bundle/TFox/MpdfPortBundle/* !vendor/tfox/mpdf-port-bundle/TFox/MpdfPortBundle/mpdf/ vendor/tfox/mpdf-port-bundle/TFox/MpdfPortBundle/mpdf/* !vendor/tfox/mpdf-port-bundle/TFox/MpdfPortBundle/mpdf/config_fonts.php

नियमों का यह सेट बहुत भारी दिखता है, लेकिन ऐसा करने का यह सही तरीका है।

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