वहाँ git के लिए एक उपेक्षा आदेश है जैसे svn के लिए है?


125

मैं एक नया उपयोगकर्ता gitहूं और मैं एक नई परियोजना शुरू कर रहा हूं। मेरे पास डॉट फ़ाइलों का एक गुच्छा है जिसे मैं अनदेखा करना चाहूंगा। वहाँ के लिए है gitजैसे वहाँ के लिए एक उपेक्षा आदेश है svn?


1
Gitignore का अच्छा विकल्प: git update-index -assume-अपरिवर्तित <फ़ाइल> , stackoverflow.com/a/16442091/2162226
जीन बो

जवाबों:


136

कोई विशेष git ignoreआज्ञा नहीं है।

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

ध्यान दें कि केवल फ़ाइल नाम जिसके साथ शुरू /हो रहा है वह निर्देशिका के सापेक्ष होगा .gitignore। बाकी सब जो कुछ भी उपनिर्देशिका में फ़ाइलों से मेल खाएगा।

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

आप अनदेखा करने के लिए पैटर्न के साथ एक वैश्विक फ़ाइल भी सेट कर सकते हैं git config --global core.excludesfile। यह स्थानीय रूप से एक ही उपयोगकर्ता के खाते पर सभी कार्यशील प्रतियों पर लागू होगा।

git help gitignoreविवरण के लिए पाठ को चलाएं और पढ़ें।


75
एक साधारण अनदेखी आदेश नहीं होने से ऐसा लगता है जैसे कि गिट टीम की ओर से।
जुल्लम

4
@jcollum पहली नज़र में यह करता है, लेकिन नए लोगों को जोड़ने के लिए एक आदेश का उपयोग करने की सादगी और एक बनाने और सभी किनारे मामलों / getchas / पाठ फ़ाइल को संपादित करने के संभावित मुद्दों के माध्यम से काम करने की जटिलता भी इसे छोड़ने के लिए समझ में आता है उपयोगकर्ता। मैं विवादित महसूस करता हूं क्योंकि मैं आपसे सहमत हूं और आपसे असहमत हूं।
अबेलिटो

100

एक बहुत ही उपयोगी git अनदेखा कमांड भयानक tj / git-extras के साथ आता है ।

यहां कुछ उपयोग उदाहरण दिए गए हैं:

वर्तमान में नजरअंदाज किए गए सभी पैटर्न को सूचीबद्ध करें

git ignore

एक पैटर्न जोड़ें

git ignore "*.log"

Gitignore.io से किसी एक टेम्पलेट को जोड़ें

git ignore-io -a rails

git-extras कई और उपयोगी कमांड प्रदान करता है। निश्चित रूप से प्रयास करने लायक।


1
इसलिए अगर मैं git अनदेखा "index.html" का उपयोग करता हूँ तो यह इस फ़ाइल को अनदेखा कर देगा?
JohnAndrews 11

-T कमांड अभी भी लागू है? जब मैं इसे चलाता हूं, यह सिर्फ -t जोड़ता है और जो भी टेम्पलेट मैं git
इग्नोर

50

लिनक्स / यूनिक्स पर, आप echoकमांड के साथ .gitignore फ़ाइल में फ़ाइलें जोड़ सकते हैं । उदाहरण के लिए यदि आप सभी .svnफ़ोल्डरों को अनदेखा करना चाहते हैं, तो इसे प्रोजेक्ट के रूट से चलाएं:

echo .svn/ >> .gitignore

1
मुझे यह ट्वीट सिंटैक्स twitter.com/noodl_io/status/669904872704253953
JohnAndrews

3
विंडोज पर Git बैश में, मैं एक पूर्ववर्ती जोड़ने के लिए की जरूरत है /(एक नई लाइन बनाने के लिए) जैसे और अनुगामी '\', echo /nbproject/project.properties\ >> .gitignoreऔर echo /nbproject/project.xml\ >> .gitignore
रयान

15

आपके पास फ़ाइलों को अनदेखा करने के दो तरीके हैं:

  • .gitignoreकिसी भी फ़ोल्डर में उस फ़ोल्डर के लिए फ़ाइल में बताई गई फ़ाइलों को अनदेखा कर देगा। वाइल्डकार्ड का उपयोग करना संभव है।
  • .git/info/excludeglobal-ignoresविध्वंस कॉन्फ़िगरेशन फ़ाइल के समान वैश्विक उपेक्षा पैटर्न रखती है ।

6
ध्यान दें कि .gitignoreफ़ाइल में वे पैटर्न जिनमें '/' शामिल नहीं है पुनरावर्ती रूप से मेल खाते हैं (यानी .gitignoreफ़ाइल निर्देशिका के सभी उपनिर्देशिकाओं में भी ), svn:ignoreसबवर्सन में निर्देशिका गुणों के मामले के विपरीत ।
याकूब नारबस्की

6

मुझे उम्मीद है कि बहुत देर नहीं हुई होगी।

यदि आप विंडोज पर हैं, तो आप एक .gitignore फ़ाइल बनाने के लिए बस निम्नलिखित कर सकते हैं

echo name_of_the_file_you_want_to_ignore.extension > .gitignore

संपादित करने के लिए .gitignore में आप चला सकते हैं

notepad .gitignore

2
यदि आपके पास पहले से .gitignore फ़ाइल नहीं है, तो इसका उपयोग न करें, यह इसे ओवरराइट कर देगा! करने के लिए संलग्न की अनदेखी करने के फ़ाइल, इस का उपयोग करें: गूंज ignore.ext >> .gitignore
TomEberhard

आप सही हैं, केवल तभी उपयोग करने की सलाह दी जाती है यदि .itignore फ़ाइल मौजूद नहीं है। यदि आप के पास "। Notepad .gitignore" का उपयोग करने के लिए बेहतर है, अगर आपके पास .itignore फाइल है तो यह इसे खोलेगा, और यदि आप इसे नहीं बनाते हैं, तो आप नोटपैड से सभी फाइलें जोड़ सकते हैं। प्रति पंक्ति 1 फ़ाइल / फ़ोल्डर
नेसार

3

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


2

पहले से दिए गए उत्तरों का उपयोग करते हुए, आप git ignoreएक उपनाम का उपयोग करके अपनी खुद की कमांड रोल कर सकते हैं । या तो इसे अपनी ~ / .gitconfig फ़ाइल में जोड़ें:

ignore = !sh -c 'echo $1 >> .gitignore' -

या अपनी पसंद के (* निक्स) शेल से इस कमांड को चलाएं:

git config --global alias.ignore '!sh -c "echo $1 >> .gitignore" -'

आप वैसे ही एक बना सकते हैं git excludeकी जगह आदेश ignoreके साथ excludeऔर .gitignoreसाथ.git/info/exclude ऊपर में।

(यदि आप पहले से ही इन दोनों फाइलों के बीच अंतर को नहीं समझ पाए हैं, तो यहां दिए गए उत्तर पढ़ें । यह प्रश्न देखें ।)


1
यहाँ जवाब $ 1 सही ढंग से फैलता है: stackoverflow.com/a/21884533/1465227
Archangel33

2

काम की प्रतिलिपि या रेपो में मौजूद नामों के लिए नहीं:

echo /globpattern >> .gitignore

या किसी मौजूदा फ़ाइल के लिए (sh प्रकार कमांड लाइन):

echo /$(ls -1 file) >> .gitignore   # I use tab completion to select the file to be ignored  
git rm -r --cached file             # if already checked in, deletes it on next commit

1

अपनी परियोजना के लिए एक पूर्ण .gitignore फ़ाइल को परिभाषित करना उपयोगी है । इनाम सुविधाजनक --allऔर -aध्वज का सुरक्षित उपयोग है जैसे कि addऔर commit

इसके अलावा, आमतौर पर नजरअंदाज किए गए पैटर्न के लिए एक वैश्विक ~ / .ignignore फ़ाइल को परिभाषित करने पर विचार करें *~ , जो Emacs द्वारा बनाई गई अस्थायी फ़ाइलों को शामिल करता है।


1

आपको इसके लिए गिट-एक्स्ट्रा इंस्टॉल करना होगा। आप इसे उबंटू के उपयोग से उबंटू में स्थापित कर सकते हैं,

$ sudo apt-get install git-extras

फिर आप git अनदेखा कमांड का उपयोग कर सकते हैं।

$ git ignore file_name

3
मैक पर, यदि आपने होमब्रे को स्थापित किया है, तो आप चला सकते हैं brew install git-extras
एलेक्स ग्लोवर

0

तुम भी जो Blau के gitignore.io का उपयोग कर सकते हैं

या तो वेब इंटरफेस के माध्यम से https://www.gitignore.io/

या CLI टूल इंस्टॉल करके, यह बहुत आसान है, बस अपने टर्मिनल पर निम्नलिखित टाइप करें:

लिनक्स:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bashrc && source ~/.bashrc

OSX:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bash_profile && source ~/.bash_profile

और फिर आप बस giउन सभी प्लेटफ़ॉर्म / पर्यावरण तत्वों द्वारा फॉलो टाइप कर सकते हैं जिनके लिए आपको gitignore मानदंड की आवश्यकता है।

उदाहरण!
कहते हैं कि आप एक नोड प्रोजेक्ट पर काम कर रहे हैं जिसमें ग्रंट शामिल है और आप लिनक्स पर वेबस्टॉर्म का उपयोग कर रहे हैं, तो आप टाइप करना चाहते हैं:
gi linux,webstorm,node,grunt > .gitignore(एक ब्रांड नई फ़ाइल बनाने के लिए)
या
gi linux,webstorm,node,grunt >> .gitignoreमौजूदा फ़ाइल में नए नियमों को जोड़ने / जोड़ने के लिए )

बम, आप जाने के लिए अच्छे हैं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.