Git इग्नोर करता है और मावेन को निशाना बनाता है


117

किसी को पता है कि क्या यह संभव है कि किसी विशेष निर्देशिका के सभी उदाहरणों को फ़ाइल संरचना द्वारा अनदेखा किया जाए।

मैं सबमेनॉडल्स की संख्या के साथ एक मावेन प्रोजेक्ट में सभी 'लक्ष्य' फ़ोल्डरों को बाहर करना चाहता हूं। मुझे पता है कि मैं स्पष्ट रूप से उनमें से प्रत्येक को एक शीर्ष स्तर .gitignore में शामिल कर सकता हूं, लेकिन मैं वास्तव में ** / लक्ष्य / * जैसे पैटर्न को निर्दिष्ट करने में सक्षम होना चाहता हूं, यह उप निर्देशिकाओं में स्वचालित रूप से उदाहरण को अनदेखा करने के लिए है?

क्या यह संभव है?


किस विन्यास के साथ आप यह काम कर रहे हैं? /.settings/ केवल 'xxx / .settings / *' को अनदेखा करेगा, न कि .settings / * 'या' xxx / yyy / .settings / * ': पर ध्यान न दें पैटर्न को पुनरावर्ती रूप से लागू नहीं किया जाता है। यह भी देखें stackoverflow.com/questions/971465/…
वॉन

जवाबों:


98

किसी .gitignoreफ़ाइल में पैटर्न का उपयोग करना संभव है । Gitignore मैन पेज देखें । पैटर्न */target/*को लक्ष्य नाम की किसी भी निर्देशिका और इसके तहत कुछ भी अनदेखा करना चाहिए। या आप */target/**लक्ष्य के तहत हर चीज को नजरअंदाज करने की कोशिश कर सकते हैं।


4
धन्यवाद! यहाँ किसी और के लिए, एक .gitignore के लिए उपयोग करने के लिए मावेन और ग्रहण संदिग्धों को छोड़ रहा है। लक्ष्य / * / लक्ष्य / .metadata tar.gz .classpath .project * /। settings /
sgargan

3
किस विन्यास के साथ आप यह काम कर रहे हैं? /.settings/ केवल 'xxx / .settings / *' को अनदेखा करेगा, न कि .settings / * 'या' xxx / yyy / .settings / * ': पर ध्यान न दें पैटर्न को पुनरावर्ती रूप से लागू नहीं किया जाता है। यह भी देखें stackoverflow.com/questions/971465/…
वॉन

6
मल्टी-मॉड्यूल प्रोजेक्ट्स के लिए आप ** / लक्ष्य / / का उपयोग करना चाहते हैं , लेकिन सावधान रहना चाहिए कि स्रोतों में वैध "लक्ष्य" निर्देशिका को बाहर न करें
बोगन

1
/target/**\.git\info\excludeएक अच्छी तरह से फ़ाइल में काम करता है ।
अभिजीत

बस इसके एक मॉड्यूल में "टारगेट" सबपैकेज के साथ एक जावा प्रोजेक्ट करने की कोशिश की। :(
ओकटाइन

222

.gitignoreरूट निर्देशिका में फाइल करता है सभी उप निर्देशिकाओं पर लागू होते हैं। मेरा ऐसा दिखता है:

.classpath
.project
.settings/
target/

यह एक मल्टी-मॉड्यूल मावेन प्रोजेक्ट में है। सभी सबमॉड्यूल्स को M2eclipse का उपयोग करके व्यक्तिगत ग्रहण परियोजनाओं के रूप में आयात किया जाता है। मेरे पास और कोई .gitignoreफाइल नहीं है। वास्तव में, यदि आप gitignore मैन पेज को देखते हैं :

.gitignoreपथ, या किसी भी मूल निर्देशिका में फ़ाइल को उसी निर्देशिका में पढ़ा जाता है …

तो यह आपके लिए काम करना चाहिए।


5
यह ' / लक्ष्य / ' से बेहतर उत्तर है । यह एक निर्देशिका को बाहर करता है जहाँ भी यह निर्देशिका के पेड़ में स्थित है। लेकिन यह फ़ाइलों के लिए काम नहीं करेगा (देखें stackoverflow.com/questions/971465/… )
VonC

3
यदि आप इसे पढ़ना जारी रखते हैं, तो कहता है "ये पैटर्न .ignignore फ़ाइल के स्थान के सापेक्ष मेल खाते हैं।" आपका उत्तर गलत है ...
user1387219

मैं इस दृष्टिकोण का उपयोग करता हूं और सभी मावेन बिल्ड फ़ोल्डरों को अनदेखा करने के लिए "लक्ष्य /" का उपयोग करता हूं, हालांकि सावधान रहें कि आप कोड को अनदेखा करने का जोखिम उठाते हैं जो उनके पथ में "लक्ष्य" फ़ोल्डर वाले पैकेज में स्थित है। (निम्नलिखित कक्षाओं के साथ एक परियोजना में: src/main/java/org/example/game/archery/bow/LongBow.java और src/main/java/org/example/game/archery/target/Target.java, आपके पास अपने लॉन्गबॉ के साथ हिट करने के लिए कुछ भी नहीं मिलेगा। (जैसे .ignignore कॉन्फ़िगरेशन :-))
क्रिस्टियानो कॉस्टैंटिनी

4

जैसा कि अभिजीत ने पहले ही टिप्पणी में कहा है कि आप बस इस तरह की रेखा जोड़ सकते हैं:

/target/**

फ़ोल्डर में फ़ाइल को बाहर करने के लिए\.git\info\

फिर यदि आप targetअपने रिमोट रेपो में उस फ़ोल्डर से छुटकारा पाना चाहते हैं तो आपको पहले अपने स्थानीय रिपॉजिटरी से इस फ़ोल्डर को मैन्युअल रूप से हटाना होगा, फिर कमिट करना होगा और फिर पुश करना होगा। Thats क्योंकि git आपको पहली बार संशोधित किए गए लक्ष्य फ़ोल्डर की सामग्री दिखाएगा।


2

मैं git से लक्ष्य फ़ोल्डर में रहने वाले सभी वर्गों को अनदेखा करता हूं। ओपन .ignignore फ़ाइल में निम्न पंक्ति जोड़ें:

/ .कलस

या

* / लक्ष्य / **

मेरे लिए यह अच्छा काम कर रहा है। कोशिश करो।


0

सभी अवांछनीय फ़ाइलों से gitignore में निम्नलिखित पंक्तियाँ जोड़ें

/target/
*/target/**
**/META-INF/
!.mvn/wrapper/maven-wrapper.jar

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/build/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.