2011-09-23 22 views
41

मैंने फ़ाइल .gitignore_global फ़ाइल बनाई है और इसे अपनी गिट इंस्टॉल निर्देशिका में डाल दिया है। जब मैं कमांड चलाता हूं:गिट ग्लोबल काम नहीं कर रहा

git config --global core.excludesfile ~/.gitignore 

अनदेखा फ़ाइल में नियम मेरे काम पर लागू नहीं होते हैं।

जब मैं .gitignore फ़ाइल का नाम बदलता हूं और इसे अपने प्रोजेक्ट रूट में डालता हूं, तो नियम लागू होते हैं।

यहां क्या गलत है?

git config --global core.excludesfile ~/.gitignore_global 

और कुछ कॉफी के लिए:

+0

@Jarrod '~/.gitignore_global' ओपी का मतलब था और पोस्ट में सिर्फ एक टाइपो था, हालांकि उसने मेरा जवाब स्वीकार कर लिया, तो आपका संपादन गुओ नहीं है डी – CharlesB

उत्तर

109

हो सकता है कि तुम क्या करने की जरूरत है।

+0

क्षमा करें यही मेरा मतलब है। जिसकी मैंने प्रतिलिपि बनाई थी वह सिर्फ यह देखने के लिए गड़बड़ कर रहा था कि क्या काम करता है। – user880954

+0

कॉफी और दांतों के लिए सच है। क्या आप निश्चित हैं .gitignore_global आपके $ HOME में है? आप कहते हैं कि आपने इसे गिट इंस्टॉल निर्देशिका में स्थापित किया है? – CharlesB

+0

कोई विचार है कि यह अभी भी क्यों काम नहीं करता है? मुझे एक .7z फ़ाइल मिली है जिसे मैं छोड़ना चाहता हूं; मैंने इन नियमों को जोड़ा: https://gist.github.com/octocat/9257657; और जब मैं फ़ाइल को बदलता हूं, तब भी यह संस्करण पर हो जाता है। git :( –

3

फ़ाइल आपकी होम निर्देशिका में होना चाहिए। विंडोज़ पर, आमतौर पर इसका मतलब है: सी: \ दस्तावेज़ और सेटिंग्स \ [उपयोगकर्ता]।

Linux पर इसका है: /घर/[उपयोगकर्ता]

4

नोट: git1.7.12 (August 2012) शुरू करने:

के मूल्य: $ HOME/.config को

  • core.attributesfile चूक/गिट/विशेषताएँ और
  • core.excludesfile क्रमशः $HOME/.config/git/ignore पर डिफ़ॉल्ट रूप से इन फ़ाइलों के मौजूद होने पर डिफ़ॉल्ट है।

तो तुम एक $HOME/.config/git/attributes फ़ाइल बनाते हैं तो आप भी अपने core.excludesfile सेटिंग सेट की जरूरत नहीं है।

8

मैंने पाया कि जब मैं इसे इस तरह परिभाषित किया गया था:

git config --global core.excludesfile $HOME/.config/git/ignore 

यह काम नहीं किया। इसे $ HOME चर का उपयोग न करने के लिए इसे बदलना, इस तरह:

git config --global core.excludesfile ~/.config/git/ignore 

यह तुरंत काम करना शुरू कर दिया। मनाइए कि यह किसी और के लिए सहायक हो।

FYI करें

:

$ git --version 
git version 1.7.10.2 (Apple Git-33) 
+0

मैंने यह भी देखा। मैंने प्रलेखन को स्किम किया लेकिन कुछ भी नहीं मिला: .gitignore (प्रति-निर्देशिका) और .git/info/extrae के अलावा, git इस फ़ाइल को उन फ़ाइलों के पैटर्न के लिए देखता है जिन्हें ट्रैक करने के लिए नहीं हैं। "~ /" को निर्दिष्ट उपयोगकर्ता की होम निर्देशिका में $ HOME और "~ user /" के मान में विस्तारित किया गया है। – rliu

46

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

यह है कि गिट केवल नई फ़ाइलों को अनदेखा करेगा। अगर फ़ाइल पहले ही गिट द्वारा ट्रैक की जा रही है, तो निश्चित रूप से गिट इसे अनदेखा नहीं करेगा! तो gitignore या exclude फ़ाइल में जो भी पैटर्न लागू नहीं करते हैं।

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

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

git update-index --assume-unchanged file

अंत में, यहाँ Git उपेक्षा डिबगिंग पर कुछ अतिरिक्त जानकारी है।

gitignore(5) Manual Page हमें बताता है:

पैटर्न जो एक उपयोगकर्ता Git सभी स्थितियों में अनदेखी करने के लिए चाहता है (जैसे, बैकअप या पसंद के उपयोगकर्ता के संपादक द्वारा उत्पन्न अस्थायी फ़ाइलें) आम तौर पर कोर द्वारा निर्दिष्ट फ़ाइल में जाने। उपयोगकर्ता के ~/.gitconfig में बहिष्कृत। इसका डिफ़ॉल्ट मान $ XDG_CONFIG_HOME/गिट/अनदेखा है। यदि $ XDG_CONFIG_HOME या तो सेट या खाली नहीं है, तो इसके बजाय $ HOME/.config/git/ignore का उपयोग किया जाता है।

तो, यह नया है और पिछले उल्लेख किए गए पिछले ~/.gitignore_global को प्रतिस्थापित करता है।

अगला, और यह वास्तव में उपयोगी है, यह है कि 1.8.2 के रूप में, अब हमारे पास कुछ उत्कृष्ट डिबगिंग टूल हैं। पर एक नज़र डालें:

Git Learns to Ignore Better - New in 1.8.2

यह दिखाता है कि कि Git सफलतापूर्वक अपने पैटर्न, उदा अनदेखी कर रहा है सत्यापित करने के लिए नई check-ignore झंडा उपयोग करने के लिए

git check-ignore bin/a.dll --verbose

+1

'गिट अपडेट-इंडेक्स - वॉल्यूम-अपरिवर्तित फ़ाइल 'वही था जो मैं ढूंढ रहा था, धन्यवाद! – Jai

0

एक और मुश्किल कारण है कि .gitignore (_global) काम नहीं कर रहा प्रतीत होता है लाइनों में रिक्त स्थान अग्रणी किया जा सकता है पर नज़र रखने के। फ़ाइल प्रमुख रिक्त स्थान के लिए क्षमा नहीं कर रही है। इसलिए सुनिश्चित करें कि आपकी फ़ाइल की प्रत्येक पंक्ति में तब तक कोई नहीं है जब तक कि यह रिक्त रेखा न हो। मुझे पता लगाने में थोड़ी देर लग गई।

बस मेरे दो सेंट जोड़ना।

2

मुझे यह समस्या थी क्योंकि मैंने शुरुआत में 'git config core.excludefiles' को बिना --global और गलत मान के साथ बुलाया था, और इसलिए उसने स्थानीय रूप से संपत्ति को संग्रहित किया था। ऐसा लगता है कि स्थानीय संपत्ति ने वैश्विक को छुपाया (जिसमें सही मूल्य था), इसे पूरी तरह अनदेखा कर दिया गया।

0

मैं हाल ही में एक गलती की है और निम्न आदेश git config core.excludesfile tags इस मौजूदा भंडार में एक स्थानीय फ़ाइल के लिए excludesfile पथ बदल चलाने के लिए, और इस config .git/config के तहत स्थानीय कॉन्फ़िग फ़ाइल को लिखा गया है, ताकि मैं ठीक करने के लिए बस .git/config फ़ाइल खोला और लाइन excludesfile tags हटा दी और सबकुछ सामान्य हो गया है।

0

मुझे एक ही समस्या थी (विंडोज़ पर)। मैं अपने ~/.gitconfig फ़ाइल की जांच समाप्त हो गया और पाया कि मेरी excludesfile करने के लिए सेट किया गया था:

excludesfile = C:\\Users\\myUserName\\Documents\\gitignore_global.txt 

लेकिन यह किया जाना चाहिए था:

excludesfile = C:\\Users\\myUserName\\.gitignore_global 

के बाद मैं इसे बदल गया है, सब कुछ एकदम सही ढंग से काम किया।

0

वैश्विक गिट अनदेखा करने का एक अन्य कारण काम नहीं कर सकता है: पथ में अदृश्य पात्र।

enter image description here

(यह पर दिखाई नहीं देती थी:

मैं केवल जब क्रोम के एड्रेस बार में, जहां यह सौभाग्य से दिखाई बन गया में git-check-ignore से चेतावनी संदेश चिपकाने यह मेरी समस्या थी पता चला टर्मिनल। और यह लंबा डिबगिंग के खरगोश छेद हो सकता है ...)

संबंधित मुद्दे