.Itignore को gitignore में जोड़ें


140

क्या .gitignoreफ़ाइल को .gitignoreखुद से जोड़ना संभव है?

.gitignore

हालांकि काम नहीं करता है

मैं इसे संपादित फाइलों में नहीं देखना चाहता


8
आप ऐसा क्यों करना चाहते हो? बस अपने बदलाव करें। .gitignoreआपकी रिपॉजिटरी का हिस्सा होना चाहिए, फ़ाइल पैटर्न को सूचीबद्ध करना जो परियोजना के लिए कबाड़ हैं।
कुरजेडीमेटल

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


आप उपयोग कर सकते हैं git rm --cached .gitignoreऔर untracking .gitignore
hassanzadeh.sd

जवाबों:


170

.gitignoreफ़ाइल का उद्देश्य हर किसी को गलती से इस तरह के उत्पन्न कैश फ़ाइलों के रूप में, एक परियोजना में कुछ सामान्य फ़ाइलें करने से से एक परियोजना पर सहयोग को रोकने के लिए है। इसलिए आपको नजरअंदाज नहीं करना चाहिए .gitignore, क्योंकि यह भंडार में शामिल होना चाहिए।

यदि आप केवल एक रिपॉजिटरी में फ़ाइलों को अनदेखा करना चाहते हैं, लेकिन अनदेखा सूची (उदाहरण के लिए व्यक्तिगत फ़ाइलों के लिए) करने से बचना चाहते हैं, तो आप उन्हें .git/info/excludeउस रिपॉजिटरी में जोड़ सकते हैं ।

यदि आप अपनी मशीन की प्रत्येक रिपॉजिटरी की कुछ फाइलों को अनदेखा करना चाहते हैं तो आप फाइल बना सकते हैं ~/.gitignore_globalऔर फिर चला सकते हैं

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

36

A .ignignore स्वयं को अनदेखा कर सकता है यदि यह कभी भी जाँच में न हो:

mhaase@ubuntu:~$ git --version
git version 1.7.9.5
mhaase@ubuntu:~$ git init temp
Initialized empty Git repository in /home/mhaase/temp/.git/
mhaase@ubuntu:~$ cd temp
mhaase@ubuntu:~/temp$ touch .gitignore foo bar baz bat
mhaase@ubuntu:~/temp$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       .gitignore
#       bar
#       bat
#       baz
#       foo
mhaase@ubuntu:~/temp$ echo "foo" >> .gitignore
mhaase@ubuntu:~/temp$ echo ".gitignore" >> .gitignore
mhaase@ubuntu:~/temp$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       bar
#       bat
#       baz
nothing added to commit but untracked files present (use "git add" to track)

यदि आप .gitignore में जांच करते हैं (इससे पहले कि आप इसे खुद को अनदेखा करने के लिए कहें), तो यह हमेशा गिट स्थिति में दिखाई देगा, भले ही आप बाद में इसे खुद को अनदेखा करने के लिए संशोधित करें।


1
वास्तव में, यह मेरा मामला है। मैं .gitignoreकाम करने के लिए स्थानीय होना चाहता हूं git-svn, जिसे किसी को भी नहीं देखना चाहिए। इसलिए मैंने इसे सिर्फ अपने साथ जोड़ा और यह बस काम कर गया। लेकिन फिर मैंने यह देखने के लिए गुहार लगाई कि क्या कुछ ईमानदार लोग दूसरों को समझाएंगे कि यह "बुरा" कैसे है। इस जवाब को स्वीकार किया जाना चाहिए, और फिर मैं .git/info/excludeसुझाव भी दूंगा । तो यह सिर्फ अनियंत्रित होने की जरूरत है ... बहुत आश्चर्य की बात नहीं है, कम से कम यदि आप कभी भी "सबवर्ट" हुए हैं (svn)।
टॉमस गैंडर

मेरे पास .gitignoreफ़ाइल पहले बैकअप है। फिर मैं git rm .gitignoreउस परिवर्तन का उपयोग करता हूं और करता हूं । अंत में, .gitignoreनियम के लिए फिर से फ़ाइल जोड़ें और प्रतिबद्ध करें .gitignore। यह काम करता हैं!
19

4
इसे ठीक करने के लिए आप चला सकते हैं git rm --cached .gitignore
गिदोन

19

ऐसा करने के लिए वास्तव में एक अच्छा कारण नहीं है। यदि आप चाहते हैं कि फ़ाइलें केवल आपके क्लोन के लिए उपेक्षित हों , तो उन्हें फ़ाइल में जोड़ें ।.git/info/exclude.gitignore


मुझे "निम्न फ़ाइल में मौजूदा परिवर्तनों के कारण ऑपरेशन पूरा नहीं किया जा रहा है" और फ़ाइल इसे सूचीबद्ध करती है जिसे मैंने बाहर रखा है। कोई विचार क्यों?
पॉल मैककार्थी

3

.gitignoreअपनी gitignore फ़ाइल में प्रवेश करने के बाद, निम्नलिखित प्रयास करें,

git rm -r --cached .
git add --all
git commit -m "ignoring gitignore"
git push --set-upstream origin master

यह काम करना चाहिए, हालांकि पहले से ही कहा गया है, अगर आपके रेपो को कई उपयोगकर्ताओं द्वारा साझा किया जाता है तो gitignore की अनदेखी करना काउंटर-उत्पादक हो सकता है।


2

हाँ तुम कर सकते हो; आप इसे अभी भी संपादित फ़ाइलों में देखते हैं क्योंकि यह अभी भी गिट द्वारा ट्रैक किया गया है, और गिट द्वारा ट्रैक की गई फ़ाइलों को हमेशा संशोधित किया जाता है, भले ही वे .itignore में हों। तो बस इसे अनट्रैक करें

लेकिन उन परिवर्तनों को क्यों नहीं करना या रीसेट करना है जो आपके पास हैं? इसे स्टेटस से हटाने का यह एक बेहतर तरीका है ... यह भी जान लें कि आपके द्वारा रेपो के किसी भी ताजा क्लोन को जोड़ना होगा .gitignore, जो कष्टप्रद हो सकता है।


हाँ, और आपको इसे git से अलग करने की आवश्यकता होगी got rm --cached .gitignore, शायद।
ताडेक

git rm --cached .itignoreore git से हटा रहा है। यह विनाशकारी है और वांछनीय नहीं है। स्थानीय क्लोन के लिए .gitignore को कैसे अनदेखा किया जाता है?
जावदबा

0

आप इसे अपने .gitignore फ़ाइल में लिखकर प्राप्त कर सकते हैं। *सूची की अनदेखी करने के लिए सब कुछ जोड़ने और फिर होगा !.gitignoreसूची को अनदेखा से .gitignore फ़ाइल को हटा देगा।

*
!.gitignore

3
हालांकि ओपी जो चाहता है उसके विपरीत यह हासिल करता है
दिमित्री परज़ित्स्की

हां, सही है, मैंने पहले ही इसका उल्लेख किया है। *सब कुछ अनदेखा कर देगा। .gitignoreफ़ाइल सहित ।
अंकित सिंह

1
मेरा मतलब है, ओपी कोडबेस से फ़ाइल को हटाने की कोशिश कर रहा है .gitignore(इसे खुद से जोड़कर, जो वास्तव में समझ में नहीं आता है, लेकिन मैं कौन हूं न्यायाधीश करने के लिए)। यहां मैं एक सुझाव देख सकता हूं जो यह सुनिश्चित करता है कि फ़ाइल को कभी भी अनदेखा न किया जाए, जिसका अर्थ है कि यह कोडबेस में मौजूद है ( जोड़ा जाता है)
दिमित्री परज़िटस्की

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