2015-04-16 15 views
5

के भीतर किसी विशिष्ट फ़ाइल एक्सटेंशन से संबंधित सभी लॉग देखने के लिए गिट का उपयोग करना मैं एक भंडार के इतिहास में काम करने की कोशिश कर रहा हूं लेकिन केवल एक विशिष्ट एक्सटेंशन वाली फ़ाइलों के लिए।उपनिर्देशिका

इस निर्देशिका संरचना है:

$ tree 
. 
├── a.txt 
├── b 
└── subdir 
    ├── c.txt 
    └── d 

और यह पूरा इतिहास है:

$ git log --oneline *.txt 
f8d4414 1 
:

$ git log --name-only --oneline 
a166980 4 
subdir/d 
1a1eec6 3 
subdir/c.txt 
bc6a027 2 
b 
f8d4414 1 
a.txt 

मैं .txt एक्सटेंशन वाली फ़ाइल के लिए लॉग देखना चाहते हैं

यह केवल उस फ़ाइल को लौटाता है जो वर्तमान निर्देशिका में है, उपनिर्देशिका में नहीं। मैं वर्तमान निर्देशिका के अंदर सभी संभावित उपनिर्देशिका शामिल करना चाहता हूं।

$ git log --oneline *.txt */*.txt 
1a1eec6 3 
f8d4414 1 

कि इस मामले के लिए काम करता है, लेकिन यह अधिक सामान्य मामलों के लिए व्यावहारिक नहीं है:

मैं भी कोशिश की है:

$ git log --oneline */*.txt 
1a1eec6 3 

और।

और:

$ git log --oneline HEAD -- *.txt 
f8d4414 1 

सफलता नहीं मिली।

+0

क्या यह एक गिट समाधान होना चाहिए, या आप बस सूची को grep कर सकते हैं? –

+0

हां, मुझे गिट का उपयोग करने की आवश्यकता है क्योंकि मैं एक स्क्रिप्ट लिख रहा हूं जो अधिक विकल्पों के साथ अन्य गिट कमांड का उपयोग करता है, और मैं नहीं चाहता कि गिट सभी फ़ाइलों को संसाधित करे, केवल एक विशिष्ट एक्सटेंशन वाले। – hector

उत्तर

2

प्रयास करें:

git log --oneline -- '*.txt' 

जहां तक ​​मेरा बता सकते हैं -- पथ विनिर्देश के लिए इस्तेमाल किया उपनिर्देशिका भी शामिल है। तो -- '*.txt' वर्तमान निर्देशिका से सभी फ़ोल्डर्स को नीचे खोजें।

वैकल्पिक रूप से, आप उपनिर्देशिका में खोज शुरू करके परिणामों को सीमित कर सकते हैं, उदा। -- 'sub/*.txt'

+0

धन्यवाद! यह अजीब है क्योंकि यह * .java, और * .rb एक्सटेंशन के साथ सिग्नल उद्धरण के बिना काम करता है। – hector

+0

धन्यवाद @ हेक्टर! मुझे नहीं पता था कि उद्धरण वैकल्पिक थे। मैं इसे प्रतिक्रिया में जोड़ दूंगा। – sfletche

+0

यदि आप उपनिर्देशिकाओं को भी देखना चाहते हैं तो यह '* .txt' एक्सटेंशन के लिए वैकल्पिक नहीं है। मैंने बस गिट संस्करण 1.9.1 में कोशिश की। – hector

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