git रिपॉजिटरी सभी .dll को अनदेखा करता है


88

शीर्षक यह सब कहता है। मैं अपने NuGet संकुल को रिपॉजिटरी में जोड़ने की कोशिश कर रहा हूँ। सब कुछ .dll फ़ाइलों का पता लगाया जा रहा है।

Gitignore फ़ाइल में * .dll का कोई संदर्भ नहीं है। संपूर्ण रिपॉजिटरी में कहीं भी स्थित होने पर .dll फ़ाइलों को मान्यता नहीं मिलती है। जानकारी / बहिष्करण भी खाली है।

मैंने रिपॉजिटरी (फाइल-सिस्टम टू फाइल-सिस्टम को रिमोट से फाइल-सिसाइटम के विपरीत) के रूप में जोड़ा है। यह समस्या दो भिन्न कंप्यूटरों पर भी होती है।

मैं .dll फ़ाइलों को मैन्युअल रूप से जोड़ सकता हूं, लेकिन उन्हें ट्रैक किया जाना चाहिए। उन्हें ट्रैक क्यों नहीं किया जा रहा है?


26
क्या git config --get core.excludesfileकहता है?
एंटनी हैचकिंस

2
यह भी आम तौर पर द्विआधारी फाइलों को ट्रैक करने के लिए गिट का उपयोग करने के लिए एक अच्छा विचार नहीं है क्योंकि गिट संशोधनों के बीच कुशलता से डेल्टास की गणना नहीं कर सकते हैं, इसलिए सभी संस्करणों को रखने के लिए जगह बर्बाद हो जाएगी। यदि dlls-on-the-fly उत्पन्न होते हैं, तो बेहतर है कि उन्हें git में अनदेखा करें। यदि वे नहीं हैं - तो एक और सिंक तंत्र (जैसे rsync) का उपयोग करना बेहतर है।
एंटनी हैचकिंस

ये नुगेट पैकेज हैं जिन्हें मैं जोड़ने की कोशिश कर रहा हूं। मैं NuGet की "पैकेज रिस्टोर" कार्यक्षमता का उपयोग नहीं कर रहा हूं, इसलिए मुझे पूरे पैकेज फ़ोल्डर की जांच करने की आवश्यकता है।
पॉल नोपफ

जवाबों:


121

आप या तो है ~/.gitignore_globalया ~/.gitignoreआपकी होम निर्देशिका जो भी इन फ़ाइल पैटर्न लिस्टिंग किया जा सकता है में?

Https://help.github.com/articles/ignoring-files देखें


6
यह देखते हुए कि वह dll फ़ाइलों के साथ काम कर रहा है, वह विंडोज प्लेटफॉर्म पर है, इसलिए ~ विंडोज 7 के तहत $ HOMEDRIVE $ HOMEPATH का अर्थ है
एंटनी हैचकिंस

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

6
मेरे पास एक ही मुद्दा था, मैंने उससे पहले SourceTree भी स्थापित किया था। इसलिए मुझे लगता है कि यह एक उचित अनुमान है कि SourceTree ने वैश्विक अनदेखी फ़ाइल को जोड़ा क्योंकि यह अतीत में काम करता था।
एंड्रियास क्रेब्स

8
संपादित करें: ठीक है, यह SourceTree लिंक
एंड्रियास क्रेब्स

31
मुझे यह git check-ignoreपता लगाने के लिए दौड़ना पड़ा कि फ़ाइल कहाँ थी। इसे ~ / दस्तावेज़ / gitignore_global.txt
मैट कैंटी

98

यदि आप SourceTree और डिफ़ॉल्ट सेटिंग का उपयोग करते हैं, तो यह डिफ़ॉल्ट रूप से सभी DLL को अनदेखा कर देगा ... उपकरण => विकल्प => फिर "फ़ाइल संपादित करें" ... "#" से पहले एक जोड़ें " । Dll =>" # .dll ".. । सहेजें और बंद करें।

फिर अपने पैकेज फ़ोल्डर में विंडोज एक्सप्लोरर के लिए एक GitBash टर्मिनल खोलें और "git add" टाइप करें। और इसे काम करने दें, SourceTree में वापस एक दूसरे का इंतजार करें और उन सभी गायब पैकेज DLL को आपके द्वारा कमिट करने और पुश करने के लिए दिखाया जाएगा।


13
SourceTree उपयोगकर्ताओं के लिए सही उत्तर;)
jmpcm

एक वैश्विक अनदेखी सूची के बारे में पता था, यह GUI में नहीं मिल सका .. धन्यवाद!
क्रिस्टोफ़

उपकरण => विकल्प => गिट / मर्क्यूरियल ग्लोबल इग्नोर लिस्ट ... यदि आपके पास एक नहीं है तो आप इसे वहां बना सकते हैं और इंगित कर सकते हैं।
केविनबी

2
फ़ाइल स्थान: ~ / दस्तावेज़ / gitignore_global.txt
जेम्स मैककॉर्मैक

यह स्रोत ट्री के लिए काम करता है, लेकिन विज़ुअल स्टूडियो के लिए कैसे उपेक्षा मेरे gitignore में नहीं थी। इस कार्य के लिए मैंने किसी भी स्रोत पेड़ का उपयोग किया
डेमोड्वे

11

मैं .dll फ़ाइलों को मैन्युअल रूप से जोड़ सकता हूं, लेकिन उन्हें ट्रैक किया जाना चाहिए। उन्हें ट्रैक क्यों नहीं किया जा रहा है?

नहीं, उन्हें ट्रैक नहीं किया जाना चाहिए , जब तक कि आपने उन्हें नहीं जोड़ा हो। केवल फाइलें जो पहले से ही जोड़ी और प्रतिबद्ध हैं, उन्हें ट्रैक किया जाता है; यही "ट्रैक" का अर्थ है।

मैन्युअल रूप से उनमें से एक को जोड़ने का प्रयास करें git addऔर यह आपको बताएगा कि यह उन्हें क्यों अनदेखा कर रहा है, और आपको git add -fफ़ाइल को जोड़ने के लिए उपयोग करने के लिए संकेत देता है ।


मैंने एक "git add '/ package' किया" और यह .dlls का पता नहीं लगा सका। मैंने तब -f का उपयोग किया और इसे जोड़ा। हालांकि मुझे यह मुद्दा मिल गया। * ".dll" मेरी वैश्विक अनदेखी में था। इस वैश्विक अनदेखी का कोई सुराग नहीं मिला।
पॉल नोपफ

2

आपको किसी भी नई फाइल को ट्रैक करने के लिए स्पष्ट रूप से बताने की आवश्यकता है।

  1. git add filenameफ़ाइल को git के अनुक्रमणिका में जोड़ने के लिए चलाएँ ।

  2. भागो git commitअपने सूचकांक में परिवर्तन के लिए प्रतिबद्ध करने।

git status अनट्रेक्ड फ़ाइलों और निर्देशिकाओं की सूची भी दिखाना चाहिए।

यदि आप रेपो में उन सभी फाइलों को सूचीबद्ध करना चाहते हैं जिन्हें gitignore द्वारा अनदेखा किया गया है, तो आप चला सकते हैं:

git ls-files . --ignored --exclude-standard --others

यदि आप रेपो में सभी अनुपयोगी फ़ाइलों को सूचीबद्ध करना चाहते हैं:

git ls-files . --exclude-standard --others

2
मुझे उन फ़ाइलों को ट्रैक करने के लिए "git add -f" करना पड़ा, जिन्हें वास्तव में अनदेखा किया गया था। यह ग्लोबल इग्नोर फाइल में एक प्रविष्टि थी, जिसे कुछ एप्लिकेशन ने मेरे अनजाने में डाल दिया।
पॉल नोपफ

2

मुझे इसी तरह के मुद्दे का सामना करना पड़ा। मैं पैकेज निर्देशिका से मेरे git में .dll फ़ाइल को जोड़ने में असमर्थ हूं, तो मुझे gitignore_global.txt फ़ाइल मिली, जैसे कि sourcetree ने स्वचालित रूप से इस फ़ाइल को एक वैश्विक गिट उपेक्षा सेटिंग के रूप में जोड़ा। मैंने * .dll को gitignore_global.txt फ़ाइल से निकाल दिया है और यह मेरे लिए ठीक है।

नीचे के रूप में gitignore_global.txt फ़ाइल का स्थान

C: \ Users \ XXXX \ Documents \ gitignore_global.txt या आप इसे sourcetree TOOL => विकल्प => GIT टैब से प्राप्त कर सकते हैं और वैश्विक उपेक्षा सूची का पता लगा सकते हैं


1

मेरे मामले में, .ignignore फ़ाइल में कोई .dll संदर्भ नहीं थे, और मेरे पास कोई वैश्विक फ़ाइल नहीं थी। हालाँकि, .it सबडायरेक्ट में, मुझे ms-persist.xml नामक एक फ़ाइल मिली। मैंने विजुअल स्टूडियो के सभी उदाहरणों को बंद कर दिया, और फिर अपने लापता .dlls को मैन्युअल रूप से उस फ़ाइल में जोड़ा। जब मैंने दृश्य स्टूडियो को फिर से खोला, .dll को चेक करने की आवश्यकता के रूप में दिखा रहे थे। मैंने उन्हें चेक किया और अब मैं ...


0

आपके पास अपनी परियोजना की जड़ के सापेक्ष उपनिर्देशिकाओं में एक वैश्विक .gitignoreकहीं या आगे की .gitignoreफाइलें हैं।

लिनक्स सिस्टम और मैकओएस पर वैश्विक गिट-इग्नोर आपके घर में सबसे अधिक संभावना है ~/

~/.gitignore_global

विंडोज पर यह आपके उपयोगकर्ता निर्देशिका में होने की संभावना है। या तो आपका स्थानीय उपयोगकर्ता (जिसे आप कमांड-लाइन में ECHO %USERPROFILE%या टाइप करके पता लगा सकते हैं whoami

यदि यह नहीं है, तो निश्चित रूप से .gitconfigइसके बजाय मौजूद है। Gitignore के स्थान के लिए यहाँ देखें (उदाहरण के लिए उपयोगकर्ता का Documentsफोल्डर)।

संपादित करें : git config --list --show-originयोगदान करने वाली गिट-सेटिंग्स और उनके संबंधित फ़ाइल स्थानों का विवरण प्राप्त करने के लिए उपयोग करें ।


0

मुझे पता है कि यह प्रश्न बहुत पुराना है, लेकिन मैं उन अन्य लोगों के लिए जोड़ रहा हूं जो भविष्य में इस प्रश्न पर जा सकते हैं। आप उपरोक्त उल्लिखित उत्तरों के रूप में अपनी वैश्विक अनदेखी फ़ाइल को संशोधित कर सकते हैं, लेकिन यह आपके सभी गिट रिपोज को प्रभावित करेगा। यदि, इसके बजाय, आप एक अधिक बारीक दृष्टिकोण चाहते हैं, तो आप अपने व्यक्तिगत प्रोजेक्ट .ignores में विशिष्ट DLL या विशिष्ट फ़ोल्डरों को या तो बाहर कर सकते हैं। यह सभी अनदेखी सेटिंग्स को ओवरराइड करता है और फ़ाइलों को पता लगाने और गिट द्वारा नियंत्रित करने के लिए मजबूर करता है। मुझे लगता है कि यह एक बेहतर तरीका है।

.itignignore (आपके विशेष प्रोजेक्ट के लिए)

# Custom ignores
!*.dll
# or
!My.specific.dll

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