ग्लोबल गिट की अनदेखी


841

मैं दुनिया भर में कुछ फाइलों को नजरअंदाज करने के लिए जीआईटी स्थापित करना चाहता हूं।

मैंने .gitignoreअपने होम डायरेक्टरी में एक फ़ाइल जोड़ी है ( /Users/me/) और मैंने इसमें निम्न पंक्ति जोड़ी है:

*.tmproj

लेकिन यह इस प्रकार की फ़ाइलों को अनदेखा नहीं कर रहा है, किसी भी विचार जो मैं गलत कर रहा हूं?


7
आप शायद GitHub के अनदेखे सुझावों की भी जाँच करना चाहते हैं - help.github.com/articles/ignoring-files ; वे एक है भंडार आम के पैटर्न पर ध्यान न दें
drzaus

6
आप अलग-अलग परियोजनाओं के अंदर सिर्फ एक .gitignore का उपयोग करने पर विचार करना चाह सकते हैं। अन्यथा यदि आप (या कोई और) एक नई प्रणाली पर परियोजना को क्लोन करते हैं, तो आपको हर बार वैश्विक बहिष्करण और कॉन्फ़िगरेशन को फिर से बनाना होगा।
स्टेन कुर्दिज़िल

25
इग्नोरेबल फाइल्स जो प्रोजेक्ट बनाता है वो प्रोजेक्ट में होनी चाहिए। .ignignore फाइल, आपके मशीन पर सामान बनाने वाली इग्नोरेबल फाइल्स ग्लोबल में होनी चाहिए।।
पाइलिनक्स

2
पायथन आभासी पर्यावरण निर्देशिका मेरे वैश्विक या स्थानीय बहिष्कृत में प्रविष्टियों के लिए एक आम उपयोग का मामला है।
स्टूज

10
@Pylinux वास्तव में, git- scm , व्यक्तिगत IDE और वर्कफ़्लो विशिष्ट सामान .git/info/excludeरेपो में अनट्रैक फ़ाइल में जा सकते हैं , इसलिए यह आवश्यक नहीं है कि वैश्विक फ़ाइल में जाना है। इसके अलावा, डिफ़ॉल्ट और स्वचालित वैश्विक gitignore फ़ाइल है $HOME/.config/git/ignore
एक्यूमेनस

जवाबों:


1420

core.excludesfileइस वैश्विक उपेक्षा फ़ाइल को इंगित करने के लिए आपको अपनी वैश्विक कॉन्फ़िगरेशन फ़ाइल सेट करने की आवश्यकता है ।

जैसे

* निक्स या विंडोज गिट बैश:

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

विंडोज cmd:

git config --global core.excludesfile "%USERPROFILE%\.gitignore"

Windows PowerShell:

git config --global core.excludesfile "$Env:USERPROFILE\.gitignore"

विंडोज के लिए यह स्थान पर सेट है C:\Users\{myusername}\.gitignore। आप पुष्टि कर सकते हैं कि विन्यास मान सही है:

git config --global core.excludesfile

परिणाम आपके उपयोगकर्ता प्रोफ़ाइल के लिए विस्तारित पथ होना चाहिए .gitignore। सुनिश्चित करें कि मान में अनएक्सपेन्डेड %USERPROFILE%स्ट्रिंग नहीं है।

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

आप कमांड के बारे में https://help.github.com/articles/ignoring-files/#create-a-global-gitignore पर पढ़ सकते हैं


2
तो जब तक यह आपके HEADया आपके सूचकांक में नहीं है, इससे कोई फर्क नहीं पड़ना चाहिए कि फाइल एक बार ट्रैक की गई थी या नहीं। यदि आप के उत्पादन में जोड़ने यह मददगार हो सकता है git status, git config core.excludesfileअपने प्रश्न का।
सीबी बेली

2
क्या मैं ग्लोबल इग्नोर फ़ाइल के अंदर टिप्पणी जोड़ने के लिए #अंदर लाइनों की शुरुआत में उपयोग कर सकता हूं ~/.gitignore?
Dror

9
आधिकारिक Git विंडोज टूलकिट के हाल के संस्करण इसके बजाय * निक्स सिंटैक्स का उपयोग करते हैं; यदि यह रेखा काम नहीं करती है, तो इसके बजाय * निक्स को आज़माएं।
एंडी जोन्स

9
मैं %USERPROFILE%चर का उपयोग कर काम करने में सक्षम नहीं था । मुझे * निक्स निर्देशिका विभाजकों का उपयोग करके फ़ाइल में पूर्ण पथ दर्ज करना था। उदा। core.excludesfile C: /Users/User/.gitignore
विंस

21
यह% USERPROFILE% चर के साथ काम नहीं कर सका। मुझे इसे करने के लिए स्थान C: / उपयोगकर्ताओं / {myusername} /। इसके अलावा उपरोक्त कमांड केवल उस अनदेखा फ़ाइल का स्थान निर्धारित करेगा जिसे git उपयोग करेगा। फ़ाइल को अभी भी मैन्युअल रूप से उस स्थान पर बनाया गया है और अनदेखा सूची के साथ आबादी है।
मुर जुगन

301

वैश्विक बहिष्कृत फ़ाइल को पुन: कॉन्फ़िगर करने से पहले, आप इस आदेश का उपयोग करके यह देखना चाहते हैं कि यह वर्तमान में क्या कॉन्फ़िगर किया गया है:

git config --get core.excludesfile

मेरे मामले में, जब मैंने इसे चलाया तो मैंने देखा कि मेरी वैश्विक बहिष्कृत फ़ाइल को कॉन्फ़िगर किया गया था

~ / .Gitignore_global
और वहां पहले से ही कुछ चीजें सूचीबद्ध थीं। इसलिए दिए गए प्रश्न के मामले में, यह मौजूदा बहिष्कृत फ़ाइल के लिए पहले जाँच करने के लिए समझ में आता है, और इसमें नया फ़ाइल मास्क जोड़ सकता है।


2
यह बहुत अच्छा काम करता है। अपने वैश्विक gitignore फ़ाइल को हमेशा की तरह सेटअप करें; प्रति पंक्ति एक प्रविष्टि।
मार्टन हार्टमैन

237

यद्यपि अन्य उत्तर सही हैं, वे वैश्विक कॉन्फ़िगरेशन मान सेट कर रहे हैं, जबकि वैश्विक गिट अनदेखी फ़ाइल के लिए एक डिफ़ॉल्ट गिट स्थान है:

* Nix:

~/.config/git/ignore

खिड़कियाँ:

%USERPROFILE%\git\ignore

आपको gitनिर्देशिका और ignoreफ़ाइल बनाने की आवश्यकता हो सकती है, लेकिन तब आप अपने वैश्विक उपेक्षा को उस फ़ाइल में डाल सकते हैं और यह बात है!

स्रोत

पैटर्न को रखने के लिए कौन सी फ़ाइल निर्भर करती है कि पैटर्न का उपयोग कैसे किया जाता है।

...

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

1
यह भी खूब रही; मैं इस बारे में नहीं जानता था ... हालांकि यह एक उत्पन्न फाइल नहीं है? जब आप अपडेट / री-इंस्टॉल करते हैं तो क्या इसे ओवरराइट किया जा सकता है?
डेनियलडेस्क 18

1
मेरा मानना ​​है कि कुछ gitआदेशों को चलाकर फ़ाइल बनाई / संशोधित की गई है । चूंकि यह प्रत्येक उपयोगकर्ता की निर्देशिका में एक सेटिंग फ़ाइल है, मुझे नहीं लगता कि इसे कभी भी ओवरराइट किया जाना चाहिए।
स्टीव जोर्गेनसन

1
मैं मानता हूं कि यह स्वीकृत उत्तर होना चाहिए, हालांकि मुझे यह -t̶h̶e̶ ̶d̶o̶c̶u̶m̶e̶n̶t̶n̶t̶i̶t̶i̶o̶n̶ एक मदद लेख ( help.github.com/articles/ignoring-files )
AVProgrammer

1
@AVProgrammer मैंने केवल स्रोत डॉक के आयोजन के तरीके में परिवर्तन को दर्शाने के लिए उत्तर को संपादित किया।
स्टीव जोर्गेनसन

7
लगता है विंडोज पर भी रास्ता है ~/.config/git/ignore
suriv

40

खरोंच से वैश्विक gitignore बनाने के लिए:

$ cd ~
$ touch .gitignore_global
$ git config --global core.excludesfile ~/.gitignore_global
  1. पहली पंक्ति निर्देशिका को बदल देती है C:/Users/User
  2. उसके बाद आप .gitignore_globalएक्सटेंशन के साथ एक खाली फाइल बनाते हैं
  3. और अंत में उस फाइल को ग्लोबल इग्नोर करना।
  4. फिर आपको इसे किसी प्रकार के नोटपैड के साथ खोलना चाहिए और आवश्यक अनदेखी नियमों को जोड़ना चाहिए।

18

से यहाँ

यदि आप अपने रेपो नाम की एक फ़ाइल बनाते हैं, तो .ignignore git अपने नियमों का उपयोग तब करेगा जब फ़ाइलों को देखने के लिए प्रतिबद्ध होगा। ध्यान दें कि इस फ़ाइल को अनदेखा करने के लिए एक नियम को इस फ़ाइल में जोड़ने से पहले ही ट्रैक की गई फ़ाइल को अनदेखा नहीं किया जाएगा। ऐसी स्थिति में फ़ाइल को अन-ट्रैक किया जाना चाहिए, आमतौर पर:

git rm --cached filename

क्या यह आपका मामला है?


मैं विश्व स्तर पर अनदेखी करने की कोशिश कर रहा हूं, जो नहीं हो रहा है !!
हल्के फुल

@MildFuzz लिनक्स पर core.excludesfileफ़ाइल एक .gitignoreफ़ाइल की तुलना में अलग तरह से व्याख्या की जाती है । यदि आप एक पूरी निर्देशिका को अनदेखा करना चाहते हैं, तो .vscode/इसके बजाय निर्देशिका का नाम रखें.vscode/*
एस्पायरिंग देव

11

यदि आप यूनिक्स प्रणाली का उपयोग करते हैं, तो आप अपनी समस्या को दो कमांड में हल कर सकते हैं। जहाँ पहला इनिशियलाइज़ कॉन्फिगर करता है और दूसरा एल्टर्स फाइल को इग्नोर करता है।

$ git config --global core.excludesfile ~/.gitignore
$ echo '.idea' >> ~/.gitignore

10
  1. अपने घर निर्देशिका में .gitignore फ़ाइल बनाएँ
touch ~/.gitignore
  1. इसमें फ़ाइलें जोड़ें ( फ़ोल्डर मान्यता प्राप्त नहीं हैं )

उदाहरण

# these work
*.gz
*.tmproj
*.7z

# these won't as they are folders
.vscode/
build/

# but you can do this
.vscode/*
build/*
  1. जाँच करें कि क्या एक git में पहले से ही वैश्विक gitignore है
git config --get core.excludesfile
  1. बताएं कि फाइल कहां है
git config --global core.excludesfile '~/.gitignore'

देखा !!


"फ़ोल्डर्स पहचाने नहीं जाते हैं" - यह सिर्फ गलत है, फ़ोल्डर्स ठीक काम कर रहे हैं ...
TobiX

7

याद रखें कि कमांड चलाना

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

अभी वैश्विक फ़ाइल सेट करेगा, लेकिन इसे बनाएगा नहीं। Windows के लिए .gitconfigफ़ाइल के लिए अपने उपयोगकर्ता निर्देशिका की जाँच करें , और अपनी वरीयताओं को संपादित करें। मेरे मामले में यह ऐसा है:

[core]
  excludesfile = c:/Users/myuser/Dropbox/Apps/Git/.gitignore

3

मैं या .tmprojतो अपनी फ़ाइल में शामिल करके किसी फ़ाइल को अनदेखा करने में सक्षम हूं । .tmproj*.tmproj/users/me/.gitignore-global

ध्यान दें कि फ़ाइल का नाम .gitignore-globalनहीं है .gitignore। यह शामिल करके काम नहीं किया .tmprojया *.tmprojकहा जाता है एक फ़ाइल में .gitignoreमें /users/meनिर्देशिका।


4
इससे कोई फर्क नहीं पड़ता कि आप अपनी वैश्विक उपेक्षा फ़ाइल को इतने लंबे समय तक कहते हैं क्योंकि यह आपके core.excludesfileकॉन्फ़िगरेशन से मेल खाती है ।
सीबी बेली

आह! अच्छी बात @CharlesBailey। हालाँकि यह कुछ ऐसा हो सकता है जिसे लेखक जाँचना चाहे। .tmprojउपयोगकर्ता द्वारा नहीं होने के कारण फ़ाइल को अनदेखा excludesfileनहीं किया जा सकता है .gitignore
श्री शंकरन

मुझे लगता है कि उन्होंने सोचा था कि उपयोगकर्ता को महसूस करने के लिए पर्याप्त स्मार्ट होगा।
वर्क्स

2

आपको इसके लिए एक बहिष्कृत फ़ाइल बनानी चाहिए। इस gist की जाँच करें जो बहुत आत्म व्याख्यात्मक है।

अपने प्रश्न हालांकि, आप या तो de-सूचकांक करना पड़ सकता है पता करने के लिए .tmprojफ़ाइल (यदि आप पहले सूचकांक में जोड़ दिया है) के साथ git rm --cached path/to/.tmproj, या git addऔर commitअपने .gitignoreफ़ाइल।


मैं इसे विश्व स्तर पर करने की कोशिश कर रहा हूं, न कि केवल रेपो के अनुसार
मल्ड फ़ज़ सिप

हाँ, यह वही है जो मैंने जीस्ट में जोड़ा है। मैं मूल प्रश्न से थोड़ा भ्रमित था। क्या आपने किया git rm --cached?
निक

हाँ, यह कोशिश की। ऐसा लगता है कि मैंने सभी अनुशंसित सलाह का पालन किया है! मैं क्या खो रहा हूँ?
हल्के फुल

जैसा कि सुझाव दिया गया है, मैं आपकी स्थिति को जोड़ दूंगा और प्रश्न की जानकारी को बाहर कर
दूंगा

2

linux मैं के लिए खिड़कियों सबसिस्टम पर से सबसिस्टम जड़ में नेविगेट करने के लिए किया था cd ~/तब touch .gitignoreऔर फिर वहाँ में वैश्विक gitignore कॉन्फ़िगरेशन अपडेट करें।

मुझे उम्मीद है कि यह किसी की मदद करता है।


0

यदि आप VSCODE का उपयोग कर रहे हैं, तो आप अपने लिए कार्य को संभालने के लिए यह एक्सटेंशन प्राप्त कर सकते हैं। यह हर बार आपके कार्यक्षेत्र को देखता है जब आप अपने काम को बचाते हैं और आपको उन फ़ाइलों और फ़ोल्डरों को स्वचालित रूप से अनदेखा करने में मदद करता है जिन्हें आप अपने vscode settings.json ignit (vscode extension) में निर्दिष्ट करते हैं।

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