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




(9)

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

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

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

# Ignore everything
*

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

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

# 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/*

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

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

# 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


आप git config status.showUntrackedFiles no उपयोग कर सकते हैं। git config status.showUntrackedFiles no और सभी git config status.showUntrackedFiles no फ़ाइलों को आप से छुपाया जाएगा। विवरण के लिए man git-config देखें।


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

!app/

app/*
!app/bower_components/

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

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


यही मेरे लिए काम किया है, मैं रेपो को केवल एक कॉर्डोवा प्लगइन करना चाहता था:

...
plugins/*
!plugins/cordova-plugin-app-customization

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

/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

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


# ignore these
*
# except foo
!foo

थोड़ा और विशिष्ट:

उदाहरण: webroot/cache में सब कुछ अनदेखा webroot/cache - लेकिन webroot/cache/.htaccess

cache फ़ोल्डर के बाद स्लैश (/) पर ध्यान दें:

विफल रहता है

webroot/cache*
!webroot/cache/.htaccess

काम करता है

webroot/cache/*
!webroot/cache/.htaccess

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

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

# 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/**/*

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





gitignore