मैं कैसे बंद कर सकते हैं।। अनिर्दिष्ट फ़ाइलों की सूची में दिखाई देने से .ignignore?


971

मैंने बस git initअपने नए प्रोजेक्ट की जड़ में किया।

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

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


13
git add self && git commit -m "-1 for reverting existential depression" && git remote rm HEAD
एलेस्टेयर

1
क्या मैं .गित / फ़ोल्डर को अनदेखा कर सकता हूं और इसे ".gitignore" में रख सकता हूं?
तिमो

2
आप लिनक्स के तहत अपने घर के फ़ोल्डर में एक वैश्विक "gitignore" बना सकते हैं और इसे वहां स्टोर कर सकते हैं: git config --global core.excludesfile ~ / .gitignore_global
Timo

14
मैं यहां खोज कर आया था how to gitignore .gitinore fileऔर प्रश्न और स्वीकृत उत्तर वास्तव में शीर्षक से संबंधित नहीं हैं। शीर्षक में सुधार हो सकता है।
m.rufca

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

जवाबों:


959

.gitignoreफ़ाइल, अपने भंडार में होना चाहिए तो यह वास्तव में जोड़ा जाना चाहिए और में प्रतिबद्ध है, के रूप में git statusपता चलता है। इसे रिपॉजिटरी ट्री का एक हिस्सा होना चाहिए, ताकि इसमें होने वाले बदलावों को मर्ज किया जा सके, इत्यादि।

इसलिए, इसे अपने रिपॉजिटरी में जोड़ें, यह gitignored नहीं होना चाहिए।

यदि आप वास्तव में चाहते हैं कि आप फ़ाइल .gitignoreको जोड़ सकते हैं .gitignoreयदि आप नहीं चाहते कि यह प्रतिबद्ध हो। हालाँकि, उस स्थिति में शायद इग्नोर को जोड़ना बेहतर होगा .git/info/exclude, एक विशेष चेकआउट-लोकल फ़ाइल जो .itignignore की तरह ही काम करती है लेकिन "git स्टेटस" में दिखाई नहीं देती क्योंकि यह .gitफ़ोल्डर में है।

Https://help.github.com/articles/ignoring-files पर भी देखें


17
क्या यह ट्रैक की गई फ़ाइल के बजाय रिपॉजिटरी के मेटाडेटा का हिस्सा नहीं होना चाहिए?
एंडोलिथ

13
रिपोजिटरी मेटाडेटा रिपॉजिटरी के लिए स्थानीय है। यदि आप अपने रेपो में एक प्रतिबद्ध हुक जोड़ते हैं, और कोई आपका रेपो क्लोन करता है, तो उन्हें उदाहरण के लिए, कमिट हुक नहीं मिलेगा।
अगस्त लिलियास

91
@wukong, यदि आप एक टीम पर काम कर रहे हैं, तो क्या हर किसी को फाइलों के एक ही सेट को नजरअंदाज नहीं करना चाहिए? इसीलिए .gitignore फ़ाइल रिपॉजिटरी में जुड़ जाती है। कोई नहीं कहता कि आपको इसे अपनी परियोजना के हिस्से के रूप में तैनात करना है।
रयान लुनडी

13
@endolith और wukong यह आपके रेपो में एक फ़ाइल होना जरूरी नहीं है। आपके पास कई अलग-अलग स्थानों में अपनी अनदेखी सेटिंग्स हो सकती हैं। GitHub के पास इस पर एक बेहतरीन लेख है help.github.com/ignore-files आपके पास कहीं भी वैश्विक उपेक्षा सेटिंग हो सकती है, और आप रेपो के लिए .IT मेटाडेटा में रेपो विशिष्ट सेटिंग्स कर सकते हैं।
बूसली

6
@ deed02392 इन अनदेखा फ़ाइलों का उपयोग करने में आपको निश्चित रूप से निर्णय का उपयोग करने की आवश्यकता है कि आप उन्हें क्या कहते हैं, लेकिन उनके पास अभी भी कुछ महान उपयोग हैं। उदाहरण के लिए मैं विम का उपयोग करता हूं और इसलिए मेरे वैश्विक gitignore में मेरे पास * .swp फाइलें नजरअंदाज कर दी गई हैं। इस तरह मुझे इसे अपनी प्रत्येक परियोजना में नहीं जोड़ना है, और जो लोग कभी भी विम का उपयोग नहीं करते हैं, उन्हें इसके बारे में चिंता करने की ज़रूरत नहीं है।
बूसली

282

यदि आप अपने गिट ट्री के बाहर नजरअंदाज की गई फाइलों की सूची को स्टोर करना चाहते हैं, तो आप .गित / सूचना / बहिष्कृत फाइल का उपयोग कर सकते हैं । यह केवल रेपो के आपके चेकआउट के लिए लागू किया जाता है।


19
+1, यह अनदेखा करने के लिए बहुत अच्छा है जो संबंधित प्रोजेक्ट नहीं हैं, जैसे कि emacs * ~ बैकअप फाइलें, .DS_Store OS X से और इसी तरह।
अगस्त लिलियास

38
@AugustLilleaas मैं व्यक्तिगत रूप से इन प्रकार के {Editor, platform} -specific फ़ाइलों को रखना पसंद करता हूँ ~/.gitignoreताकि वे मेरे द्वारा काम करने वाले किसी भी भंडार के लिए अनदेखा कर दें।
माइकल मिओर

22
एक बार फ़ाइल ट्रैक करने के बाद, आप git update-index --assume-unchanged <file>अपने रेपो को बदले बिना ट्रैकिंग परिवर्तनों को रोकने के लिए उपयोग कर सकते हैं । यह बड़ी साझा परियोजनाओं पर बहुत उपयोगी है, जहां आपको स्थानीय परिवर्तन करने की आवश्यकता होती है, लेकिन कोई और आपके सामान को रेपो के लिए प्रतिबद्ध नहीं देखना चाहता। ब्लॉग
क्रिस एस्प्लिन

6
@AugustLilleaas: प्रति उपयोगकर्ता gitignore उस उपयोग के मामले के लिए बेहतर है।
मेकैनिकल घोंघा

3
इस टिप के लिए धन्यवाद, मैं git-svn का उपयोग कर रहा हूँ ताकि सर्वर पर svn रेपो के अन्य उपयोगकर्ता बिल्कुल नहीं चाहते हैं।
.ignignore

74

आप वास्तव .gitignoreमें अपनी .gitignoreफ़ाइल में एक पंक्ति डाल सकते हैं। यह .gitignoreफ़ाइल को git द्वारा अनदेखा करने का कारण होगा । मुझे नहीं लगता कि वास्तव में यह एक अच्छा विचार है। मुझे लगता है कि अनदेखा फ़ाइल को संस्करण नियंत्रित और ट्रैक किया जाना चाहिए। मैं इसे पूर्णता के लिए वहीं रख रहा हूं।


7
मेरे लिए काम किया! संस्करण 1.5.6.5। मैं 1800 जानकारी से भी सहमत हूं कि यह एक अच्छा विचार नहीं है, लेकिन मुझे लगता है कि यह कुछ संदर्भों में ठीक हो सकता है (कहते हैं कि आप git-svn रिपॉजिटरी का उपयोग करते हैं, और आप svn में जाने के लिए git-ish फ़ाइलों को नहीं चाहते हैं)। बहिष्कृत फ़ाइल शायद बेहतर है।
जे। पोलफर

4
@ एहसानुल - फ़ाइल को ट्रैक नहीं किया जाना चाहिए (आपको इसे जोड़ना या कमिट नहीं करना चाहिए)। आप इसे अनट्रैक कर सकते हैं। यह केवल एक गीट-ओनली वातावरण में एक महान विचार नहीं है, लेकिन यदि आप उदाहरण के लिए एक तोड़फोड़ वाले रिपॉजिटरी के लिए स्मार्ट क्लाइंट के रूप में जीआईटी का उपयोग करते हैं (बाकी जानने के बिना <maniacal laughter>) - तो ऐसी चाल बहुत बढ़िया है।
टॉमस गैंडर

2
@IshanSrivastava आपके पास संभवतः पहले से ट्रैक की गई फ़ाइल है। चलने की कोशिश करेंgit rm --cached .gitignore
गिदोन

51

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

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

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

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

किसी भी समय आप एक इन्टो को कॉपी, इनिट या क्लोन करते हैं, आपकी वैश्विक गिट्टीग्नोर फाइल का भी उपयोग किया जाएगा।


6
मेरा मानना ​​है कि यह उन स्थितियों के लिए सबसे अच्छा समाधान है, जहां आपके संपादक अस्थायी फ़ाइलों को पीछे छोड़ते हैं, उदाहरण के लिए। *। Swp (VIM) और ._ * (TM), क्योंकि यह हर git रेपो में इन नियमों को लगातार जोड़ने के लिए समझ में नहीं आएगा। और इन फ़ाइलों की जाँच करने के लिए अलग-अलग आईडीई के साथ अन्य उपयोगकर्ताओं को बाध्य करने के लिए।
थॉमस हंटर II

1
यह उन कार्यों के लिए शानदार ढंग से काम करता है जिन्हें किसी भी शाखा में नहीं धकेला जाना चाहिए। अपने वास्तविक उपयोगकर्ता नाम के साथ 'उपयोगकर्ता नाम' को बदलें, और .गितकॉन्फ़िग में एक दूसरा [कोर] अनुभाग न जोड़ें, यदि आपके पास पहले से ही एक है - तो अपने मौजूदा [कोर] अनुभाग के तहत अपवर्जित लाइन रखें।
एमरी

47

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

git update-index --assume-unchanged .gitignore

स्रोत


5
बुरा विचार, एक कारण .git/info/excludesमौजूद है।
एरोमास्टर

6
मुझे लगता है कि एक कारण --assume-unchangedभी मौजूद है। एक दूसरे से बेहतर क्यों है?
लीफ ग्रुएनवॉल्ड

9
और btw .git/info/excludesकाम नहीं करता है अगर फ़ाइल पहले से ही ट्रैक है।
लेफ़ ग्रुएनवॉल्ड

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

मैं इस जवाब के लिए वोट करता हूं कि आम तौर पर आपको अपने मास्टर रेपो प्रारंभिक अवस्था के लिए इस कार्रवाई की आवश्यकता होगी और गिट कार्यक्षमता के लाभों को बनाए रखेंगे। इस फ़ाइल (अवधि) को अनदेखा करने का कोई अच्छा कारण नहीं है
लाज़रोस कोस्मिडिस

37

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

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

20

बस किसी और को उकसाने से हमें वही दर्द होता है जो हमने किया था। हम एक ऐसी फ़ाइल को बाहर करना चाहते थे जो पहले से ही प्रतिबद्ध थी।

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

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

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

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

इस वसीयत उत्पादन क्या किया जाएगा यदि आप इसे दौड़ा बाहर रखा गया।

फिर

आप इसे चलाकर

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

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


4
बेशक, आप इसे अपने .gitignore से संबंधित पैटर्न (यानी, * .log) को जोड़ने के साथ पालन करना चाह सकते हैं, ताकि git statusभविष्य में दिखाए जाने पर वे आपकी अव्यवस्था न करें ।
पैट्रिक ओ

2
हालाँकि, मेरी समस्या ओपी के समान नहीं थी: मुझे यह बताने के लिए धन्यवाद कि मुझे। , मुझे पता है, लेकिन यह पहला स्थान था जिसे मैंने व्यक्तिगत रूप से किसी का उल्लेख करते देखा है।
माइक

प्रतिक्रिया के लिए धन्यवाद। हाँ, इसीलिए मैंने इसे लिखा था, यहाँ आकर और फिर इस काम को करने के लिए बहुत लंबा रास्ता तय किया, सोचा कि इसे लिखना अच्छा होगा। :)
विकसित करें

16

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

चूँकि .itignore एक अनट्रैक फ़ाइल है, हालाँकि, इसे git द्वारा अनदेखा किया जाना है जब आप इसे .ignoreore में डालते हैं!

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

.gitignore # Ignore the hand that feeds!

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

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

संदर्भ के लिए, गिरीनकोर (5) मैनपेज k कर्नेल.ऑर्ग पर देखें।


15

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

उन फ़ाइलों के लिए जो आपका स्वयं का सेटअप बनाता है, लेकिन जो आवश्यक रूप से प्रत्येक उपयोगकर्ता के लिए नहीं दिखाई देगा (जैसे .swpफाइलें यदि आप vim, हिडन एक्लिप्स निर्देशिका और इसी तरह का उपयोग करते हैं), तो आपको उपयोग करना चाहिए .git/info/exclude(जैसा कि पहले ही उल्लेख किया गया है)।


14

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

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

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

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

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

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

वैश्विक के लिए अच्छा उल्लेख.gitignore
ग्रुबर

मुझे लगता है कि प्रारंभिक सेटअप के बाद .gitignore फ़ाइल को अनदेखा किया जाना चाहिए, ताकि कोई आकस्मिक परिवर्तन न हों। इसका मतलब यह नहीं है कि इसे अब और नहीं बदला जा सकता है, लेकिन यह एक तरह से दुर्घटनाओं से सुरक्षित है। उस फ़ाइल पर दुर्घटनाएँ भ्रम या कुछ काम को खतरे में डाल सकती हैं, इसलिए "सीलिंग" (खुद की अनदेखी) पर भी विचार किया जाना चाहिए।
सास

@ Sasa .gitignoreकेवल उन फ़ाइलों को अनदेखा करने के लिए काम करता है जो अभी तक Git द्वारा ट्रैक नहीं किए जा रहे हैं। पहले से ट्रैक की गई फ़ाइल को जोड़ने .gitignoreसे आप उस फ़ाइल में परिवर्तन करने से नहीं रोक पाएंगे। यहां तक ​​कि अगर यह संभव था, तो .gitignoreजब आप खुद को नजरअंदाज करने का निर्देश देंगे तो आप कैसे बदलाव करेंगे ?
निक वर्टेल

@ एनआईसी - मैंने इस थ्रेड के नीचे अलग उत्तर @ में अपने दृष्टिकोण के लिए विस्तृत विवरण पारित किया है।
सास

12

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

*

यह सीम ठीक काम करने के लिए जब तक आप महसूस नहीं करते कि निर्देशिका जोड़ी नहीं गई थी (जैसा कि आपकी रिपॉजिटरी से अपेक्षा थी। इसका कारण यह है कि .ignignore को भी नजरअंदाज कर दिया जाएगा, और इस तरह निर्देशिका खाली है। इस प्रकार, आपको कुछ ऐसा करना चाहिए। :

*
!.gitignore

9

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

इस फ़ाइल को अपडेट करें

.git/info/exclude 

अपने वाइल्ड कार्ड या फ़ाइल नाम के साथ

*pyc
*swp
*~

5

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

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

git update-index --assume-unchanged FILENAME_TO_IGNORE

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

git update-index --no-assume-unchanged

अद्यतन :

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

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

के रूप में -vविकल्प के लिए छोटे अक्षरों का प्रयोग करेंगे फ़ाइलें 'अपरिवर्तित मान'।


4

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

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

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


मेरे लिए सबसे अच्छा समाधान। आप git add का भी उपयोग कर सकते हैं। दूसरे स्थान पर, उसके बाद जीआईटी कमिट-एम "फिक्सिंग।
नितिग्नोर

3

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

echo '\\.*' >> .gitignore

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


4
मैं ऐसा नहीं करूंगा। आपकी जरूरत की डॉट फाइलें हो सकती हैं। इसके बजाय, मैं सिर्फ .gitignore और .DS_Store जोड़ूंगा।
एडवर्ड फल्क

2

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


1

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

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

सादृश्य उन टू-डू आइटमों की एक सूची है जो आप नहीं करना चाहते हैं। जब तक आप उन्हें सूचीबद्ध नहीं करते हैं, तब तक किसी प्रकार की 'टू-डू' सूची आपको उनके बारे में पता नहीं चलेगी।


1

मुझे लगता है कि ऐसी परिस्थितियां हैं जहां .ignignore की अनदेखी करना बहुत उपयोगी है। उदाहरण के लिए, जब आपके पास एक से अधिक टीम या एक ही कोडबेस पर काम करने वाली बड़ी टीम है। उस मामले में, आपको कुछ सम्मेलनों की आवश्यकता है, उन सम्मेलनों में से एक के बारे में है जिसे गिट रेपो में अनदेखा किया गया है। यह आमतौर पर आईडीई या ओएस, कुछ उत्पन्न लॉग आदि द्वारा बनाई गई फाइलों और निर्देशिकाओं की अनदेखी के बारे में है।

हालाँकि, एक बल है जो .gitignoreफाइल करने के लिए गैर-पारंपरिक परिवर्तनों को प्रस्तुत करने के लिए प्रवृत्त है । .gitignoreफ़ाइल आगे गैर जिम्मेदार व्यक्ति द्वारा गलती से, एक उपकरण है कि इस्तेमाल किया, या कुछ अन्य मामले में बदला जा सकता है।

इसके लिए एक काउंटर बल रखने के लिए, हम निम्नानुसार कर सकते हैं:

  1. प्रारंभिक .gitignore को टीम (एस) में सम्मेलन को प्रतिबिंबित करना चाहिए,
  2. इसे धकेलने के बाद, .itignore को .gitignore प्रविष्टि को जोड़कर सुरक्षित किया जाना चाहिए और उस परिवर्तन को फिर से धक्का देना चाहिए। .gitignoreफ़ाइल इस तरह से " सील " है।

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

अफसोस की बात है कि आप मूर्खता से 100% सुरक्षित नहीं हो सकते हैं, लेकिन इस तरह से आपने सब कुछ किया है जिससे आप बेवकूफ चीजों को होने से रोक सकते हैं।

यदि आपके पास बहुत अच्छे पेशेवरों के साथ अपेक्षाकृत छोटी टीम है, तो इससे महत्वपूर्ण नहीं होगा, लेकिन यहां तक ​​कि उन लोगों को चिंता करने के लिए कम से कम एक चीज की सराहना होगी।

.git/info/excludeजब आप इंफ्रास्ट्रक्चर सेटिंग्स के बारे में कुछ नहीं कर सकते हैं, तो कूलिंग का उपयोग करना , सिर्फ एक गलती करने के लिए अपना ** कवर करना नहीं है।

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


0

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

जब आप इसमें git रिपॉजिटरी सेट करते हैं तो IntelliJ अपने आप ऐसा करने लगता है।


1
उपयोगकर्ता की वैश्विक अनदेखी फ़ाइल अनदेखा करने के लिए एक बेहतर स्थान होगा
.DS_Store
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.