windows विंडोज़ पर गिट रेपो में निर्देशिकाओं को अनदेखा करना




git gitignore (12)

मैं विंडोज़ पर msysgit का उपयोग कर गिट में निर्देशिका या फ़ोल्डर को कैसे अनदेखा कर सकता हूं?


मेरे पास समान समस्याएं थीं, मैं लिनक्स लड़कों के साथ एक साझा रेपो के साथ एक विंडोज़ उपकरण श्रृंखला पर काम करता हूं, वे किसी दिए गए फ़ोल्डर में नाम [केस को छोड़कर] नाम के साथ फाइलें बनाते हैं।

प्रभाव यह है कि मैं रेपो को क्लोन कर सकता हूं और तुरंत दर्जनों 'संशोधित' फाइलें कर सकता हूं, यदि मैंने चेक किया तो इसमें कहर बरकरार रहेगा।

मेरे पास केस को नजरअंदाज करने के लिए संवेदनशील और गिट केस सेट है लेकिन यह अभी भी विफल रहता है (Win32 एपीआई कॉल में स्पष्ट रूप से)।

अगर मैं फ़ाइलों को गिटिनोर करता हूं तो मुझे .gitignore फ़ाइल को ट्रैक न करना याद रखना होगा।

लेकिन मुझे यहां एक अच्छा जवाब मिला http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html

क्रिस


कुछ फ़ाइलों या फ़ोल्डर्स को अनदेखा करने के लिए जीआईटी को निर्देश देने के लिए, आपको .gitignore फ़ाइल बनाना होगा।

लेकिन विंडोज एक्सप्लोरर में आपको फ़ाइल के लिए नाम देना होगा, आप सिर्फ एक्सटेंशन के साथ फाइल नहीं बना सकते हैं, चाल यह है कि एक खाली टेक्स्ट फ़ाइल बनाएं और कमांड प्रॉम्प्ट पर जाएं और फ़ाइल का नाम बदल दें .gitignore

ren "New Text Document.txt" .gitignore

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

उम्मीद है कि यह आपको प्रश्न का उत्तर देगा


मुझे विंडोज़ पर .gitignore फ़ाइल पिकअप करने के लिए गिट प्राप्त करने में कुछ समस्याएं आई हैं। $ GIT_DIR / जानकारी / फ़ाइल को बहिष्कृत करना हमेशा काम करता प्रतीत होता है। हालांकि, इस दृष्टिकोण का नकारात्मक पक्ष यह है कि $ GIT_DIR निर्देशिका में फ़ाइलों को चेक-इन में शामिल नहीं किया गया है, और इसलिए साझा नहीं किया गया है।

(पीएस $ GIT_DIR आमतौर पर .git नामक छुपा फ़ोल्डर है)


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

$ git add path/to/folder/.gitignore

यदि आप खाली फ़ोल्डर जोड़ते हैं, तो आपको यह संदेश प्राप्त होता है (.gitignore छिपी हुई फ़ाइल है)

The following paths are ignored by one of your .gitignore files:
path/to/folder/.gitignore
Use -f if you really want to add them.
fatal: no files added

तो, बल जोड़ने के लिए "-f" का उपयोग करें:

$ git add path/to/folder/.gitignore -f

जब सबकुछ विफल रहता है तो फ़ाइल को संपादित करने का प्रयास करें

/.git/info/exclude

और उन निर्देशिकाओं को जोड़ना जिन्हें आप फ़ाइल के अंत में चाहते हैं, जैसे:

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
assets/
compiled/

मैंने अनदेखा करने के लिए फ़ाइलों और निर्देशिकाओं की सूची में फ़ोल्डर "संपत्ति" और "संकलित" जोड़ा।


मुझे विंडोज़ एक्सप्लोरर में फाइल बनाने के कुछ समस्याएं थीं। शुरू में।

वर्कअराउंड कमांडहेल में जाना था और "एडिट" का उपयोग करके एक नई फाइल बनाना था


आपकी \.git\info प्रोजेक्ट निर्देशिका में भी एक बहिष्कृत फ़ाइल है जो प्रभावी रूप से एक ही चीज़ है .gitignore (मुझे लगता है)। आप उसमें अनदेखा करने के लिए फ़ाइलें और निर्देशिका जोड़ सकते हैं।


मुझे लगता है कि समस्या यह है कि आपका कामकाजी पेड़ इस तरह है:

a-cache/foo
a-cache/index.html
b-cache/bar
b-cache/foo
b-cache/index.html
.gitignore

... .gitignore साथ आप वर्णन करते हैं। यह आपको git status आउटपुट देगा जैसे:

$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   .gitignore
#   a-cache/
#   b-cache/

... अगर index.html फ़ाइलों को अभी तक भंडार में जोड़ा नहीं गया है। (गिट देखता है कि कैश निर्देशिका में अनगिनत फ़ाइलें हैं, लेकिन केवल निर्देशिकाओं की रिपोर्ट करती हैं।) इसे ठीक करने के लिए, सुनिश्चित करें कि आपने index.html फ़ाइलों को जोड़ा और प्रतिबद्ध किया है:

git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"

... और आपकी git status तब दिखाई देगी:

$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   .gitignore
nothing added to commit but untracked files present (use "git add" to track)

(जाहिर है आप प्रतिबद्ध होना चाहते हैं। .gitignore भी, मैं सिर्फ इस टेस्ट केस के साथ आलसी था।)


डिफ़ॉल्ट रूप से विंडोज एक्सप्लोरर प्रदर्शित करेगा। .gitignore जब वास्तव में फ़ाइल नाम है .gitignore.txt

गिट का उपयोग नहीं करेगा .gitignore.txt

और आप फ़ाइल को .gitignore पर पुनर्नामित नहीं कर सकते हैं क्योंकि एक्सप्लोरर किसी भी नाम के साथ गिटिग्नोर की एक फ़ाइल सोचता है।

गैर कमांड लाइन समाधान:

You can rename a file to ".gitignore." and it will create ".gitignore"

ऐसा लगता है कि फ़ाइलों और निर्देशिकाओं को अनदेखा करने के लिए दो मुख्य तरीके हैं:

  1. .gitignore

    • .gitignore फ़ाइल को अपने repo के रूट में .git फ़ोल्डर के अलावा रखें (विंडोज़ में सुनिश्चित करें कि आप सही फ़ाइल एक्सटेंशन देखते हैं और फिर .gitignore. बनाते हैं .gitignore. (खाली फ़ाइल एक्सटेंशन बनाने के अंत में बिंदु के साथ))
    • ग्लोबल कॉन्फ़िगरेशन ~/.gitignore_global git config --global core.excludesfile ~/.gitignore_global बनाना और git config --global core.excludesfile ~/.gitignore_global को अपने गिट कॉन्फ़िगरेशन में जोड़ने के लिए

    नोट: git rm --cached filename चलाकर पहले ट्रैक की गई फ़ाइलों को git rm --cached filename किया जा सकता है

  2. रिपो बहिष्कृत करें - उन स्थानीय फ़ाइलों के लिए जिन्हें साझा करने की आवश्यकता नहीं है, आप फ़ाइल में फ़ाइल पैटर्न या निर्देशिका जोड़ते हैं। फ़ाइल .git/info/exclude । थेस नियमों का पालन नहीं किया जाता है, इसलिए अन्य उपयोगकर्ताओं द्वारा here अधिक जानकारी नहीं देखी जाती here

[अपडेटेड] अनदेखा फ़ाइलों की सूची में अपवाद बनाने के लिए, यह प्रश्न देखें।


विंडोज़ में स्लेश के साथ एक अतिरिक्त पकड़ है। .gitignore में एक निर्देशिका को छोड़कर

dir_to_exclude /

संभवतः काम करेगा, लेकिन सभी निर्देशिकाओं को छोड़कर

/

जब आपकी निर्देशिका में रिक्त स्थान (जैसे my file.txt ) के साथ फ़ाइल नाम होते हैं तो समस्याएं उत्पन्न होती हैं: गिट बैश इन रिक्त स्थान को बैकस्लैश (जैसे my\ file.txt ) से my\ file.txt और विंडोज के लिए गिट / और \ बीच अंतर नहीं करता है।

सभी निर्देशिकाओं को बेहतर उपयोग करने के लिए:

** /

दो लगातार क्षुद्रग्रह निर्देशिका सामग्री को इंगित करते हैं।


आप सामग्री के साथ ".gitignore" फ़ाइल बना सकते हैं:

*
!.gitignore

यह मेरे लिए और सिमुलेशन के लिए काम करता है।







msysgit