.gitignore फ़ाइल को स्वयं अनदेखा करें




version-control dvcs (13)

मैंने अभी अपनी नई परियोजना की जड़ पर एक git init किया है।

तब मैंने एक .gitignore फ़ाइल बनाई।

अब, जब मैं git status टाइप करता हूं, तो .gitignore फ़ाइल अनचाहे फ़ाइलों की सूची में दिखाई देती है। ऐसा क्यों है?


अगर किसी ने आपके रेपो में पहले से ही एक .gitignore जोड़ा है, लेकिन आप इसमें कुछ बदलाव करना चाहते हैं और इन परिवर्तनों को अनदेखा कर दिया है तो निम्न कार्य करें:

git update-index --assume-unchanged .gitignore

Source


अपने गिट रेपो की मूल निर्देशिका पर नेविगेट करें और निम्न आदेश निष्पादित करें:

echo '\\.*' >> .gitignore

सभी डॉट फ़ाइलों को अनदेखा कर दिया जाएगा, जिसमें उस अजीब .DS_Store शामिल हैं यदि आप मैक पर हैं।


आपके पास एक वैश्विक उपयोगकर्ता गिट भी हो सकता है .gitignore फ़ाइल जो आपके सभी रिपो में स्वचालित रूप से लागू हो जाएगी। यह आईडीई और एडिटर फाइलों के लिए उपयोगी है (उदाहरण के लिए swp और *~ वीम के लिए फाइलें)। अपने ओएस को सुइट करने के लिए निर्देशिका स्थान बदलें

  1. अपनी ~/.gitconfig फ़ाइल में जोड़ें

    [core]
    excludesfile = /home/username/.gitignore
    
  2. अनदेखा करने के लिए फ़ाइल पैटर्न के साथ ~/.gitignore फ़ाइल बनाएं

  3. अपनी डॉट फ़ाइलों को किसी अन्य रेपो में सहेजें ताकि आपके पास बैकअप (वैकल्पिक) हो।

जब भी आप प्रतिलिपि बनाते हैं, इनिट या क्लोन करते हैं तो आपकी ग्लोबल गिटिनोर फ़ाइल भी उपयोग की जाएगी।


ऐसा लगता है कि Git को भंडार से सभी फाइलों को अनदेखा करने के लिए आपकी वर्तमान निर्देशिका के लिए ही काम करना है।

इस फ़ाइल को अद्यतन करें

.git/info/exclude 

अपने जंगली कार्ड या फ़ाइल नाम के साथ

*pyc
*swp
*~

बस किसी और को एक ही दर्द है जो हमारे पास था। हम एक फाइल को बाहर करना चाहते थे जो पहले से ही किया गया था।

यह पोस्ट रास्ता अधिक उपयोगी था: .git / info / के साथ काम करना / बहुत देर हो चुकी है

विशेष रूप से आपको फ़ाइल को अनदेखा करने की आवश्यकता होती है, वास्तव में कमांड गिट हटाने का उपयोग करें जीआईटी आरएम देखें ( http://www.kernel.org/pub/software/scm/git/docs/git-rm.html )

आप इसे जाकर परीक्षण करते हैं

git rm --dry-run *.log
(यदि आप कहते हैं कि सभी लॉग फाइलों को बाहर करना चाहते हैं)

यदि आप इसे चलाते हैं तो यह आउटपुट को बाहर कर दिया जाएगा।

फिर

आप इसे चलाकर चलाते हैं

git rm *.log
(या जो भी फ़ाइल नाम / अभिव्यक्ति आप चाहते हैं)

फिर अपनी .gitignore फ़ाइल में *.log लाइन जोड़ें।


बेशक .gitignore फ़ाइल स्थिति पर दिखाई दे रही है, क्योंकि यह अनचाहे है, और गिट इसे खाने के लिए एक स्वादिष्ट नई फ़ाइल के रूप में देखता है!

चूंकि .gitignore एक अनचाहे फ़ाइल है, हालांकि, जब आप इसे डालते हैं तो यह गिट द्वारा अनदेखा करने वाला उम्मीदवार होता है .gitignore!

तो, जवाब सरल है: बस लाइन जोड़ें:

.gitignore # Ignore the hand that feeds!

आपकी .gitignore फ़ाइल में!

और, अगस्त की प्रतिक्रिया के विपरीत, मुझे यह कहना चाहिए कि यह नहीं है कि .gitignore फ़ाइल आपके भंडार में होनी चाहिए। ऐसा होता है कि यह हो सकता है, जो अक्सर सुविधाजनक होता है। और यह शायद सच है कि यही कारण है। गिटिनोरोर को .git / info / extrae के विकल्प के रूप में बनाया गया था, जिसमें भंडार द्वारा ट्रैक करने का विकल्प नहीं है। किसी भी दर पर, आप अपनी .gitignore फ़ाइल का उपयोग कैसे करते हैं, वह पूरी तरह से आपके ऊपर है।

संदर्भ के लिए, kernel.org पर gitignore (5) manpage देखें।


मेरे मामले में, मैं एक मौजूदा फाइल को बाहर करना चाहता हूं। केवल संशोधित .gitignore काम नहीं करते हैं। मैंने इन चरणों का पालन किया:

git rm --cached dirToFile/file.php
vim .gitignore
git commit -a

इस तरह, मैंने फ़ाइल को कैश से साफ़ किया जिसे मैं बाहर करना चाहता था और इसके बाद मैंने इसे .gitignore में जोड़ा


मैंने पाया कि pesky को अनदेखा करने के लिए सबसे अच्छी जगह .DS_Store फ़ाइलें .git/info/exclude फ़ाइल को .git/info/exclude हैं।

IntelliJ स्वचालित रूप से ऐसा करने लगता है जब आप इसमें एक गिट भंडार स्थापित करते हैं।


यदि आप पहले ही .gitignore में चेक इन कर चुके हैं और आप इसमें संशोधन को अनदेखा करना चाहते हैं, तो यह उत्तर देखें :

इस आदेश का उपयोग करने का प्रयास करें:

git update-index --assume-unchanged FILENAME_TO_IGNORE

इसे उलट करने के लिए (यदि आप कभी भी इसमें बदलाव करना चाहते हैं), तो इसका उपयोग करें:

git update-index --no-assume-unchanged

अद्यतन :

वर्तमान निर्देशिका के तहत 'अपरिवर्तित मानें' फ़ाइलों को सूचीबद्ध करने का तरीका बताया गया है:

git ls-files -v | grep -E "^[a-z]"

चूंकि -v विकल्प 'अपरिवर्तित' फ़ाइलों के लिए लोअरकेस अक्षरों का उपयोग करेगा।


यह काफी संभव है कि एक अंतिम उपयोगकर्ता गिट को ".gitignore" फ़ाइल को अनदेखा करना चाहता है क्योंकि ग्रहण द्वारा बनाए गए आईडीई विशिष्ट फ़ोल्डर्स शायद नेटबीन या किसी अन्य आईडीई के समान नहीं हैं। तो स्रोत कोड आईडीई विरोधी को रखने के लिए यह एक कस्टम गिट अनदेखा करने के लिए जीवन को आसान बनाता है जिसे पूरी टीम के साथ साझा नहीं किया जाता है क्योंकि व्यक्तिगत डेवलपर्स अलग-अलग आईडीई का उपयोग कर सकते हैं।


सबसे पहले, जैसा कि कई अन्य पहले से ही कहते हैं, आपके .gitignore को गिट द्वारा ट्रैक किया जाना चाहिए (और इसलिए इसे अनदेखा नहीं किया जाना चाहिए)। मुझे बताएं क्यों।

(टीएल; डीआर: .gitignore फ़ाइल को प्रतिबद्ध करें, और अपने आईडीई या ऑपरेटिंग सिस्टम द्वारा बनाई गई फ़ाइलों को अनदेखा करने के लिए वैश्विक .gitignore का उपयोग करें)

गिट है, जैसा कि आप शायद पहले ही जानते हैं, एक वितरित संस्करण नियंत्रण प्रणाली । इसका मतलब है कि यह आपको विभिन्न संस्करणों के बीच आगे और पीछे स्विच करने की अनुमति देता है (भले ही विकास अलग-अलग शाखाओं में अलग हो गया हो) और यह कई डेवलपर्स को एक ही प्रोजेक्ट पर काम करने की अनुमति देता है।

हालांकि, जब आप स्नैपशॉट्स के बीच स्विच करते हैं तो आपके .gitignore ट्रैक करने पर भी लाभ होता है, यह करने का सबसे महत्वपूर्ण कारण यह है कि आप फ़ाइल को अन्य डेवलपर्स के साथ साझा करना चाहेंगे जो एक ही प्रोजेक्ट पर काम कर रहे हैं। फ़ाइल को गिट में करने से, अन्य योगदानकर्ता स्वचालित रूप से .gitignore फ़ाइल को रिपोजिटरी क्लोन करते समय प्राप्त करेंगे, इसलिए उन्हें गलती से ऐसी फ़ाइल करने की चिंता करने की आवश्यकता नहीं होगी जो कि नहीं किया जाना चाहिए (जैसे लॉग फाइल, कैश निर्देशिका, डेटाबेस प्रमाण पत्र, आदि)। और यदि किसी बिंदु पर प्रोजेक्ट का .gitignore अपडेट किया गया है, तो वे फ़ाइल को मैन्युअल रूप से संपादित करने के बजाय बस उन परिवर्तनों को खींच सकते हैं।

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

  • आपके ऑपरेटिंग सिस्टम या आईडीई द्वारा बनाई गई फ़ाइलों और फ़ोल्डर्स को वैश्विक .gitignore में रखा जाना चाहिए। लाभ यह है कि यह .gitignore आपके कंप्यूटर पर सभी रिपॉजिटरीज़ पर लागू होता है, इसलिए आपको प्रत्येक संग्रह के लिए इसे दोहराना नहीं है। और यह अन्य डेवलपर्स के साथ साझा नहीं किया जाता है, क्योंकि वे एक अलग ऑपरेटिंग सिस्टम और / या आईडीई का उपयोग कर रहे हैं।
  • फ़ाइलें जो प्रोजेक्ट के .gitignore में नहीं हैं, न ही वैश्विक your_project_directory/.git/info/exclude में, your_project_directory/.git/info/exclude का उपयोग करके अनदेखा किया जा सकता है your_project_directory/.git/info/exclude में शामिल नहीं है । यह फ़ाइल अन्य डेवलपर्स के साथ साझा नहीं की जाएगी, और उस एकल भंडार के लिए विशिष्ट है

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

अगर इसे .the_list_of_ignored_files कहा जाता है .the_list_of_ignored_files यह थोड़ा और स्पष्ट हो सकता है।

एक समानता उन वस्तुओं की एक सूची है जो आप नहीं करना चाहते हैं। जब तक आप उन्हें कहीं भी सूचीबद्ध नहीं करते हैं, तो कुछ प्रकार की 'टू-डू' सूची होती है जिसे आप उनके बारे में नहीं जानते।


.gitignore फ़ाइल जोड़ने और इसे प्रतिबद्ध करने के बाद, यह अब "अनचाहे फ़ाइलों" सूची में दिखाई नहीं देगा।

git add .gitignore
git commit -m "add .gitignore file"
git status





gitignore