दिलचस्प पोस्ट
मोबाइल विजन एपीआई – फ्रेम प्रोसेसिंग को जारी रखने के लिए नई डिटेक्टर ऑब्जेक्ट को इकट्ठा करें स्ट्रिंग के लिए XML दस्तावेज़? ResourceResolverFactory getServiceResourceResolver ने एईएम में अपवाद फेंकता है 6.1 म्यूटक्स लॉक किए बिना pthread_cond_signal को कॉल करना गिट के लिए साइन ऑफ फीचर क्या है? एक्लिप्स् में एक्सएमएल कोड प्रारूपित करें क्या System.nanoTime () पूरी तरह बेकार है? Node.js – एक्सप्रेस का उपयोग कर कच्चा अनुरोध निकाय प्राप्त करें जेगो प्रमाणीकरण और अजाक्स – यूआरएल जो लॉगिन की आवश्यकता होती है दो Firebase परियोजनाओं से एक एंड्रॉइड ऐप पर पुश नोटिफिकेशन प्राप्त करें एसवीजी और एचटीएमएल 5 कैनवास के बीच अंतर क्या है? मैं NSTimer प्रोग्राम को कैसे रोक सकता हूं? विशिष्ट फ़ाइल प्रकार से इनपुट प्रकार = "फ़ाइल" संवाद को फ़िल्टर कैसे करें? ActionContext में मौजूद पैरामीटर, अनुरोध और सत्र ऑब्जेक्ट का उपयोग कैसे करें? एक वास्तविक (निश्चित / अस्थायी बिंदु) मूल्य को दबाना सबसे तेज़ तरीका है?

जो कि जीटग्नोर नियम मेरी फाइल की अनदेखी कर रहा है

क्या यह देखने का कोई तरीका है कि जीआईटी द्वारा कुछ फाइल को क्यों नज़रअंदाज़ किया जा रहा है (यानी कौन से नियम .gitignore फ़ाइल में फाइल को अनदेखा कर रहा है)?

कल्पना कीजिए कि मेरे पास यह (या अधिक जटिल परिदृश्य है, जिसमें सैकड़ों फ़ोल्डर्स और .gitignore फाइलें हैं।)

 / -.gitignore -folder/ -.gitignore -subfolder/ -.gitignore -file.txt 

अगर मैं git add folder/subfolder/file.txt जीआईटी चलाता हूं तो उसे इसकी अनदेखी की शिकायत हो सकती है:

 The following paths are ignored by one of your .gitignore files: folder/subfolder/file.txt Use -f if you really want to add them. 

क्या यह जानने का कोई तरीका है कि सभी संभव में से। .gitignore पास इस फाइल को अनदेखा करने का नियम है, और क्या नियम भी दिखाता है? पसंद:

 The following paths are ignored by your folder/.gitignore file (line 12: *.txt) folder/subfolder/file.txt Use -f if you really want to add them. 

या केवल:

 $ git why-is-ignored folder/subfolder/file.txt folder/.gitignore:12:*.txt 

Solutions Collecting From Web of "जो कि जीटग्नोर नियम मेरी फाइल की अनदेखी कर रहा है"

 git check-ignore -v filename 

अधिक विवरण के लिए मैन पेज देखें

मूल उत्तर निम्नानुसार है:

git वर्तमान में इस तरह कुछ भी नहीं प्रदान करता है। लेकिन आपका सवाल देखने के बाद मैंने कुछ गोल कर लिया और पाया कि 2009 में वापस इस सुविधा का अनुरोध किया गया और आंशिक रूप से कार्यान्वित किया गया । धागा पढ़ने के बाद, मुझे एहसास हुआ कि यह ठीक से करने के लिए बहुत ज्यादा काम नहीं होगा, इसलिए मैंने एक पैच पर काम करना शुरू कर दिया है और उम्मीद है कि अगले दो-दो दिन में यह पूरा हो जाएगा। जब यह तैयार हो जाता है तो मैं इस उत्तर को अपडेट करूँगा

अद्यतनः वाह, यह मेरे द्वारा अपेक्षा की गई बहुत कठिन था git के बहिष्कार से निपटने में काफी गुप्त हैं। वैसे भी, यह एक लगभग पूर्ण श्रृंखला है जो आज के अपस्ट्रीम master शाखा पर लागू होता है। परीक्षा सुइट 99% पूर्ण है, लेकिन मैंने --stdin विकल्प का प्रबंधन अभी तक पूरा नहीं किया है। उम्मीद है कि मैं इस सप्ताह के अंत में प्रबंधन करेगा, और फिर git मेलिंग सूची में मेरे पैच को जमा करें।

इस बीच, मैं निश्चित रूप से किसी से भी परीक्षण करने का स्वागत करता हूं जो कि ऐसा करने में सक्षम है – मेरे git कांटा से सिर्फ क्लोन करें, check-ignore शाखा की check-ignore , और इसे सामान्य रूप से संकलित करें

2 अद्यतन: यह किया है! नवीनतम संस्करण ऊपर के अनुसार github पर है, और मैंने पीयर समीक्षा के लिए git मेलिंग सूची में पैच श्रृंखला प्रस्तुत की है । देखते हैं कि वे क्या सोचते हैं …

3 अपडेट: हैकिंग / पैच की समीक्षा / चर्चा / इंतजार के कई महीनों के बाद, मुझे यह कहते हुए खुशी हो रही है कि यह सुविधा अब गिट की master ब्रांच पर पहुंच गई है , और यह अगले रिलीज (1.8.2, 8 मार्च 2013)। यहां check-ignore पुस्तिका पृष्ठ है । ओफ़्फ़, यह मेरे काम की अपेक्षा अधिक काम था!

4 अद्यतन: यदि आप इस उत्तर के बारे में पूरी कहानी में रुचि रखते हैं और इस सुविधा को लागू किया गया है, तो GitMinutes पॉडकास्ट के एपिसोड # 32 को देखें ।

जीआईटी 2.8 (मार्च 2016) अपडेट करें:

 GIT_TRACE_EXCLUDE=1 git status 

" मान्य करने के लिए .gitignore फ़ाइल का एक तरीका " देखें

यह नीचे वर्णित git check-ignore -v पूरक है


मूल उत्तर: सितंबर 2013 (git 1.8.2, फिर 1.8.5+):

git check-ignore git 1.8.5 / 1.9 (Q4 2013) में फिर से सुधार:

" git check-ignore " " git add " और " git status " के रूप में उसी नियम का अनुसरण करता है जिसमें उपेक्षा / बाहर की जाने वाली तंत्र पहले से ट्रैक किए गए पथों पर प्रभाव नहीं लेते हैं
" --no-index " विकल्प के साथ, यह पता लगाने के लिए इस्तेमाल किया जा सकता है कि कौन सा पथ अनदेखा कर दिया जाना चाहिए, गलती से सूचकांक में जोड़ा गया है

https://github.com/flashydave से 8231fa6 देखें:

check-ignore वर्तमान में दिखाता है कि कैसे। .gitignore नियम अनजान पथ का इलाज करेंगे। ट्रैक किए गए पथ उपयोगी आउटपुट उत्पन्न नहीं करते हैं
यह डिबगिंग को रोकता है कि क्यों एक रास्ता अप्रत्याशित रूप से ट्रैक हो गया जब तक कि उस पथ को पहली बार git rm --cached <path> साथ अनुक्रमणिका से हटा दिया गया।

विकल्प --no-index में होने वाले पथ की जांच को बायपास करने के लिए कमांड को बताता है और इसलिए ट्रैक किए गए पथों को भी जांचने की अनुमति देता है।

हालांकि यह व्यवहार, git add और git status की विशेषता से भटक जाता है इसके उपयोग के मामले में कोई भी उपयोगकर्ता भ्रम पैदा करने की संभावना नहीं है।

सही व्यवहार सुनिश्चित करने के लिए मानक अनदेखी के खिलाफ इस विकल्प की जांच करने के लिए टेस्ट स्क्रिप्ट संवर्धित किए जाते हैं।


 --no-index:: 

जांच करते समय इंडेक्स में न देखें।
इसका इस्तेमाल किया जा सकता है:

  • डिबग करने के लिए क्यों कोई रास्ता पथ पर नज़र रखता है जैसे git add . और उपयोगकर्ता द्वारा अपेक्षित नियमों से अनदेखा नहीं किया गया था या
  • जब git add -f साथ जोड़े गए मार्ग से मिलान करने के लिए निषेध सहित पैटर्न विकसित करना

मुझे मैन पेज में कुछ भी नहीं मिल सकता है लेकिन यह एक त्वरित और गंदे स्क्रिप्ट है जो आपकी फ़ाइल को प्रत्येक अभिभावकीय निर्देशिका में जांच सकेगी कि यह git-add'ed हो सकता है या नहीं। इस समस्या फ़ाइल को डाइरेक्टरी में चलाएँ:

 test-add.sh STOP_DIR FILENAME 

जहां STOP_DIR Git प्रोजेक्ट की शीर्ष स्तर की निर्देशिका है और FILENAME समस्या फ़ाइल का नाम है (किसी पथ के बिना)। यह पदानुक्रम के प्रत्येक स्तर पर एक ही नाम की एक खाली फ़ाइल बनाता है (यदि यह मौजूद नहीं है) और यह देखने के लिए कि क्या यह जोड़ा जा सकता है (यह स्वयं के बाद साफ होता है) एक git add -n का प्रयास करता है यह कुछ जैसा दिखता है:

 FAILED: /dir/1/2/3 SUCCEEDED: /dir/1/2 

लिपी:

 #!/usr/bin/env bash TOP=$1 FILE=$2 DIR=`pwd` while : ; do TMPFILE=1 F=$DIR/$FILE if [ ! -f $F ]; then touch $F TMPFILE=0 fi git add -n $F >/dev/null 2>&1 if [ $? = 0 ]; then echo "SUCCEEDED: $DIR" else echo "FAILED: $DIR" fi if [ $TMPFILE = 0 ]; then rm $F fi DIR=${DIR%/*} if [ "$DIR" \< "$TOP" ]; then break fi done