2010-05-05 11 views
12

git commit करते समय, मेरे संपादक में अनचाहे फ़ाइलों को प्रदर्शित करने का कोई तरीका नहीं है ($EDITOR में परिभाषित)? मुझे पता है कि खोल में ऐसा कैसे करें (git status -uno), लेकिन मैं इसे संपादक में भी करना चाहता हूं।अवांछित फ़ाइलों को दिखाने के लिए गिट प्राप्त करें

ध्यान दें कि मैं इन फ़ाइलों को हमेशा के लिए अनदेखा नहीं करना चाहता हूं; मैं बस कुछ मौकों पर उन्हें देखना नहीं चाहता हूं।

+0

संभावित डुप्लिकेट ([मैं एक 'Git स्थिति' तो यह .gitignore का उपयोग किए बिना ट्रैक न किए गए फ़ाइलें प्रदर्शित नहीं करता है? ऐसा कैसे करते हैं] http://stackoverflow.com/questions/594757/how-do- i-do-a-git-status-so-it-doesnt-display-untracked-files-without-use) –

उत्तर

12

git-commit आदमी पृष्ठ से:

 
     -u[], --untracked-files[=] 
      Show untracked files (Default: all). 

      The mode parameter is optional, and is used to specify the handling of untracked 
      files. The possible options are: 

      · no - Show no untracked files 

      · normal - Shows untracked files and directories 

      · all - Also shows individual files in untracked directories. 

       See git-config(1) for configuration variable used to change the default for 
       when the option is not specified. 
+0

धन्यवाद, यह काम करता है। – chiggsy

+0

गिट के बारे में बड़ी बात यह है कि वे वास्तव में समान कार्यक्षमता वाले कमांड के बीच कमांड लाइन विकल्प रखने की कोशिश कर रहे हैं। –

+0

क्या आप जानते हैं कि सेटिंग को स्थायी रूप से बदलने का कोई तरीका है, लेकिन 'स्थिति' और 'प्रतिबद्ध' आदेशों के लिए स्वतंत्र रूप से? मैं उन्हें 'स्टेटस' के साथ देखना चाहता हूं, लेकिन 'प्रतिबद्ध' के लिए नहीं, लेकिन 'git-config (1)' केवल 'status.showUntrackedFiles' विकल्प दिखाता है जो दोनों आदेशों को प्रभावित करता है। –

28

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

आप बस उन्हें देखने के लिए जब करने,, status.showUntrackedFilesno को Git config चर सेट के रूप में उल्लेख here नहीं करना चाहते हैं:

$ git config --global status.showUntrackedFiles no 
+0

हम्म, यह जानना एक दिलचस्प बात है। धन्यवाद – chiggsy

+4

यदि आप वैश्विक रूप से उपयोग करने के बजाए केवल मौजूदा रेपो में अनचाहे फ़ाइलों को अनदेखा करना चाहते हैं: 'git config --local status.showUntrackedFiles no' – yaitloutou

+0

@yaitloutou, आपका एक्सटेंशन उत्तर में जोड़ा जाना चाहिए। – oliversm

5

आप अस्थायी उपयोग Git ट्रैक न किए गए फ़ाइलों मुखौटा करने के लिए विकल्प -uno प्रतिबद्ध कर सकते हैं (git help commit)।

यदि आप स्थायी समाधान चाहते हैं तो .gitignore फ़ाइल का उपयोग करें।

उदाहरण के लिए

, यदि आप फ़ाइल bar.foo और .bak विस्तार के साथ किसी भी फाइल को अनदेखा करना चाहते हैं, तो आप जस्ट अपनी परियोजना युक्त की रूट निर्देशिका में एक .gitignore फ़ाइल बनाने के लिए है:

bar.foo 
*.bak 

कुछ फाइल कर रहे हैं वैश्विक gitignore फ़ाइल द्वारा अनदेखा (उदाहरण के लिए, डॉट फ़ाइल और निर्देशिका को अनदेखा किया जाता है)। एक

git add .gitignore 
git commit -m 'Added .gitignore file' 

उदाहरण के लिए, मेरी गो भंडार के लिए, मेरे पास है: .gitignore फाइल करने के लिए और भंडार में नहीं जोड़ -

3

जोड़े फ़ाइल नाम - या टेम्पलेट्स (वाइल्ड कार्ड) फ़ाइल नाम के लिए .gitignore फ़ाइल युक्त

*.o 
*.a 
*.so 
*.pl 
*.6 
*.out 
_obj/ 
_cgo_defun.c 
_cgo_export.c 
_cgo_export.h 
_cgo_gotypes.go 
*.cgo1.go 
*.cgo2.c 
example/example 
ifix1/esqlc-cmds.c 

मैं शायद एक वाइल्ड कार्ड के साथ '_cgo_ के नाम सेक चाहिए; अन्य '.c' फ़ाइल '.ec' फ़ाइल से उत्पन्न होती है, इसलिए इसे ट्रैक करने की आवश्यकता नहीं होती है।

1

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

उन मामलों में, इन समाधानों में से एक का उपयोग करें:

git update-index --assume-unchanged "$FILE"

पूर्ववत करने के लिए:

  1. फ़ाइल एक बदली हुई रेपो फ़ाइल

    उपयोग आदेश है यह, कमांड का उपयोग करें:

    git update-index --no-assume-unchanged "$FILE"

    update-index कमांड नई फ़ाइलों के साथ काम नहीं करता है जो अभी तक रेपो में जोड़े नहीं गए हैं।

  2. तो फ़ाइल नए और रेपो

    को नहीं जोड़ा गया है रेपो के exclude फाइल करने के लिए अपनी फ़ाइल नाम जोड़ें:

    echo "$FILE" >> .git/info/exclude

    यह भी बदली हुई रेपो फ़ाइलों के लिए काम करता है, लेकिन वहाँ इसके लिए एक विशिष्ट पूर्ववत आदेश नहीं है। exclude फ़ाइल को संपादित करने की आवश्यकता होगी और फ़ाइल नाम से हटा दिया जाएगा। या अन्य आदेशों यह अनुमानित सकता है:

    ex -s -c"g/^${FILE}\$/d" -cwq .git/info/exclude

    ध्यान दें कि यह अधिलेखित कर देता है मौजूदा exclude फ़ाइल और यदि फ़ाइल नाम निर्दिष्ट विशेष वर्ण हैं जो नियमित अभिव्यक्ति को प्रभावित कर सकते हैं, परिणाम अप्रत्याशित हैं।

    exclude फ़ाइल का यह उपयोग पृष्ठ "Ignoring files" on GitHub Help द्वारा अनुशंसित किया जाता है।

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