2011-06-27 22 views
24

में पैटर्न से मेल खाने वाले फ़ाइल नामों को संशोधित करने वाले कामों को ढूंढें, मैं अपने कोड बेस में काम करना चाहता हूं जो उन्हें बाहर निकालने के लिए वीडियो फाइलें जोड़ता है। क्या इन फ़ाइलों को गिट में देखने का कोई तरीका है?एक ऐसी जीआईटी रिपोजिटरी

उदाहरण के लिए मान लें कि सभी वीडियो में एक्सटेंशन के साथ समाप्त होने वाला फ़ाइल नाम है। Wmv; मैं इन फ़ाइलों को शुरू करने और फिक्सअप या कुछ के साथ छुटकारा पाने के लिए सभी काम करना चाहता हूं।

कोई विचार?

उत्तर

30

आप एक pathspec साथ git log उपयोग कर सकते हैं:

git log --all -- '*.wmv' 

यह आप सब करता है जो फ़ाइलों .wmv में परिवर्तन करने के मिल जाएगा। हां, यह उपनिर्देशिका में भी उतरेगा (लेकिन आपको अपने पथस्पेक को सिंगल कोट्स के साथ घूमना होगा, इसलिए यह गिट के रूप में पारित किया जाएगा)।

यदि आप केवल में रुचि रखते हैं के लिए प्रतिबद्ध हैश (पटकथा आदि) सीधे git rev-list मशीनरी का उपयोग करें:

git rev-list --all -- '*.wmv' 
+1

यह बिल्कुल काम नहीं कर रहा था। मुझे इन दो आदेशों और लंबे इंतजार के बाद कुछ भी नहीं मिला है। – Bastes

+0

@bastes: तो आपके पेड़ों में n.o wmv फ़ाइलें हैं ... @ adl का उत्तर बेहतर है हालांकि – knittl

+0

कोई यह काम नहीं करता है। मैं गिट लॉग --all - '\ *। जावा' आज़माता हूं और खोजने के दौरान कुछ भी नहीं मिलता। -नाम '\ *। जावा' सभी फाइलों को सूचीबद्ध करें। –

5

आप, अपने सभी प्रतिबद्ध से इन फ़ाइलों को दूर करने के लिए filter-branch साथ पूरे इतिहास को फिर से लिखने पर विचार चाहते हैं आदेश। उदाहरण के लिए,

git filter-branch --index-filter 'git rm --cached --ignore-unmatch -r *.wml' HEAD 
+0

वैसे यह वही है जो मैं वास्तव में करना चाहता हूं। आदेश के लिए धन्यवाद। – Bastes

0

हाँ, उल्लेख की तरह, मुझे लगता है कि thinko है कि करता है कि परिचय उन्हें धब्बे दूर करने के लिए नहीं जा रहा है को हटाने

विषय की एक व्यापक उपचार और

उदाहरण के लिए http://progit.org/book/ch9-7.html#removing_objects देखें
+0

बहुत उपयोगी लिंक, बहुत बहुत धन्यवाद। – Bastes

+0

वह लिंक अब टूटा हुआ है: https://git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery#Removing-Objects – Eosis

0

लक्ष्य भंडार (इस प्रकार पुनर्लेखन इतिहास) से फ़ाइलें निकालने के लिए है, तो BFG Repo-Cleaner उपयोग करते हैं, उदाहरण के लिए:

bfg --delete-files '*.wmv' --private --no-blob-protection 

हैं फाइलें प्रासंगिक हैं, आप उन्हें Git LFS का उपयोग कर संस्करण नियंत्रण में रख सकते हैं। migrate (यह भी इतिहास को फिर से लिखने) के लिए, आप इस तरह के रूप में कुछ कर:

git-lfs-migrate \ 
    -s original.git \ 
    -d converted.git \ 
    -l https://user:[email protected]:8080 \ 
    '*.wmv' 

बस सूची या प्रतिबद्ध जांच करने के लिए, मैं Knittl के जवाब का संदर्भ लें:

git rev-list --all -- '*.wmv' 
git log --all -- '*.wmv' 
0

यह रूप में अच्छी तरह gitk में काम कर सकते हैं, प्रति पंक्ति बॉक्स में शामिल करने के लिए व्यू/न्यू व्यू/एंटर फाइलों और निर्देशिकाओं का उपयोग करना।

लेकिन ध्यान दें कि आपको एक वाइल्डकार्ड की आवश्यकता है जो फ़ाइल नाम के पथ खंड को कवर करे, या अन्यथा कुछ भी नहीं दिखाया जाएगा। (!)

जैसे यदि आप किसी फ़ाइल backup-script.sh कहा जाता है, एक विविध जीवन फ़ाइल पेड़ में अलग-अलग स्थानों में प्रदर्शित होने के साथ पड़ा है और आप सभी संस्करणों देखना चाहते हैं, तो आप उल्लेख करना होगा:

*/backup-script.sh 
1

आप इस कोशिश कर सकते हैं:

git log --follow *.wmv 

इस (हैश के साथ) सभी प्रतिबद्ध है कि WMV फ़ाइलें संशोधित सूची जाएगा।

+0

ओपी की आवश्यकता नहीं है: '--follow 'नवीनतम गिट में केवल एक फ़ाइल के लिए काम करता है। – wotopul

संबंधित मुद्दे