कुछ फ़ाइलों को छोड़कर सब कुछ अनदेखा करें.gitignore




(8)

एक वैकल्पिक उपसर्ग ! जो पैटर्न को अस्वीकार करता है; पिछले पैटर्न द्वारा छोड़ा गया कोई मिलान फ़ाइल फिर से शामिल हो जाएगी। यदि एक नकारात्मक पैटर्न मिलान करता है, तो यह निम्न प्राथमिकता पैटर्न स्रोतों को ओवरराइड करेगा।

# Ignore everything
*

# But not these files...
!.gitignore
!script.pl
!template.latex
# etc...

# ...even if they are in subdirectories
!*/

# if the files to be tracked are in subdirectories
!*/a/b/file1.txt
!*/a/b/c/*

मैं समझता हूं कि एक .gitignore फ़ाइल गिट के संस्करण नियंत्रण से निर्दिष्ट फ़ाइलों को क्लोक करता है। मेरे पास एक प्रोजेक्ट (लाटेक्स) है जो बहुत सारी अतिरिक्त फाइलें (.auth, .dvi, .pdf, logs, आदि) उत्पन्न करता है, लेकिन मैं नहीं चाहता कि उनको ट्रैक किया जाए।

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

हालांकि, क्या प्रोजेक्ट फ़ाइलों को प्रोजेक्ट पेड़ की जड़ में रखने का कोई व्यवहार्य तरीका है और गिट के साथ ट्रैक करने वाली फ़ाइलों को छोड़कर सबकुछ अनदेखा करने के लिए .gitignore का उपयोग करें? कुछ इस तरह

# Ignore everything
*

# But not these files...
script.pl
template.latex
# etc...

.gitignore से फ़ोल्डर को बाहर करने के लिए, निम्नलिखित किया जा सकता है।

!app/

app/*
!app/bower_components/

app/bower_components/*
!app/bower_components/highcharts/

यह bower_components अंदर / bower_components को छोड़कर सभी फ़ाइलों / उपफोल्डर्स को अनदेखा कर /highcharts


इसके बारे में समान प्रश्नों का एक समूह है, इसलिए मैंने जो लिखा है उसे पोस्ट करूंगा:

मेरी मशीन पर काम करने का एकमात्र तरीका यह था कि इसे इस तरह से किया जाए:

# Ignore all directories, and all sub-directories, and it's contents:
*/*

#Now ignore all files in the current directory 
#(This fails to ignore files without a ".", for example 
#'file.txt' works, but 
#'file' doesn't):
*.*

#Only Include these specific directories and subdirectories and files if you wish:
!wordpress/somefile.jpg
!wordpress/
!wordpress/*/
!wordpress/*/wp-content/
!wordpress/*/wp-content/themes/
!wordpress/*/wp-content/themes/*
!wordpress/*/wp-content/themes/*/*
!wordpress/*/wp-content/themes/*/*/*
!wordpress/*/wp-content/themes/*/*/*/*
!wordpress/*/wp-content/themes/*/*/*/*/*

ध्यान दें कि आपको प्रत्येक स्तर के लिए सामग्री को स्पष्ट रूप से अनुमति देना है जिसमें आप शामिल करना चाहते हैं। तो अगर मेरे पास विषयों के तहत 5 गहरी उपनिर्देशिकाएं हैं, तो मुझे अभी भी इसका जादू करना होगा।

यह @ यरीन की टिप्पणी से यहां है: https://.com/a/5250314/1696153

ये उपयोगी विषय थे:

मैंने भी कोशिश की

*
*/*
**/**

और **/wp-content/themes/**

या /wp-content/themes/**/*

इनमें से कोई भी मेरे लिए काम नहीं करता है, या तो। बहुत सारे निशान और त्रुटि!


किसी निर्देशिका में कुछ फ़ाइलों को अनदेखा करने के लिए, आपको इसे सही क्रम में करना होगा :

उदाहरण के लिए, index.php को छोड़कर फ़ोल्डर "एप्लिकेशन" में सब कुछ अनदेखा करें और फ़ोल्डर "कॉन्फ़िगरेशन" ऑर्डर पर ध्यान दें

आपको पहले चाहना चाहिए कि आपको पहले चाहिए।

विफल रहता है

application/*

!application/config/*

!application/index.php

काम करता है

!application/config/*

!application/index.php

application/*


मेरे पास जौरी से कोणीय और कोणीय है। बोवर ने उन्हें स्थापित किया

/public_html/bower_components/jquery/dist/bunch-of-jquery-files
/public_html/bower_components/jquery/src/bunch-of-jquery-source-files
/public_html/bower_components/angular/angular-files

कम से कम jquery dist निर्देशिका के अंदर है और कोणीय angular निर्देशिका के अंदर है। मुझे केवल गिटूब को कम करने के लिए कम से कम फ़ाइलों की आवश्यकता थी। कुछ .gitignore के साथ छेड़छाड़ और यही वह है जो मैं conjure करने में कामयाब रहे ...

/public_html/bower_components/jquery/*
!public_html/bower_components/jquery/dist
/public_html/bower_components/jquery/dist/*
!public_html/bower_components/jquery/dist/jquery.min.js
/public_html/bower_components/angular/*
!public_html/bower_components/angular/angular.min.js

उम्मीद है कि कोई इसे उपयोगी पा सकता है।


यदि आप निर्देशिका के पूरे सामग्री को अनदेखा करना चाहते हैं तो इसके अंदर एक फ़ाइल को छोड़कर, आप फ़ाइल पथ में प्रत्येक निर्देशिका के लिए नियमों की एक जोड़ी लिख सकते हैं। जैसे। Pippo / pluto / paperino.xml को छोड़कर pippo फ़ोल्डर को अनदेखा करने के लिए .gitignore

.gitignore

pippo/*
!pippo/pluto
pippo/pluto/*
!pippo/pluto/paperino.xml

आप ज्यादातर मामलों में * या */ बजाय /* का उपयोग करना चाहते हैं

* का उपयोग वैध है, लेकिन यह पुनरावर्ती काम करता है। यह तब से निर्देशिका में नहीं देखेगा। लोग दोबारा निर्देशिकाओं को श्वेतसूची में उपयोग करने की सलाह देते हैं, लेकिन यह वास्तव में उच्चतम स्तर फ़ोल्डर को ब्लैकलिस्ट करने के लिए बेहतर है /*

# Blacklist files/folders in same directory as the .gitignore file
/*

# Whitelist some files
!.gitignore
!README.md

# Ignore all files named .DS_Store or ending with .log
**/.DS_Store
**.log

# Whitelist folder/a/b1/ and folder/a/b2/
# trailing "/" is optional for folders, may match file though.
# "/" is NOT optional when followed by a *
!folder/
folder/*
!folder/a/
folder/a/*
!folder/a/b1/
!folder/a/b2/

उपरोक्त कोड README.md , README.md , folder/a/b1/ और folder/a/b2/ और उन दो फ़ोल्डरों में निहित सबकुछ को छोड़कर सभी फ़ाइलों को अनदेखा कर देगा। (और .DS_Store और *.log फ़ाइलों को उन फ़ोल्डरों में अनदेखा कर दिया जाएगा।)

जाहिर है, मैं ऐसा कर सकता था !/folder या !/.gitignore भी।

अधिक जानकारी: http://git-scm.com/docs/gitignore


# ignore these
*
# except foo
!foo





gitignore