2010-04-23 15 views
38

मुझे एक लाइन को खोजने के लिए एक गिट रिपॉजिटरी में एक विशिष्ट फ़ाइल का इतिहास खोजना होगा। प्रतिबद्ध संदेश में खोज करने के लिए कोई प्रासंगिक पाठ नहीं होगा। मैं किस आदेश का उपयोग करता हूं?मैं गायब रेखा के लिए गिट इतिहास कैसे खोजूं?

अधिक जानकारी: यह हमारे गैर-तारकीय कार्य ट्रैकिंग सॉफ्टवेयर से बाहर मेरी कार्य सूची का इतिहास है। मैं इसे दो साल तक रख रहा हूं क्योंकि सॉफ्टवेयर में मेरे लिए पर्याप्त जानकारी नहीं है। मेरे प्रतिबद्ध संदेशों में आमतौर पर केवल कार्य आईडी हैं, दुर्भाग्यवश, और मुझे जो करना है, वह विषय के आधार पर बंद कार्य ढूंढना है, संख्या के अनुसार नहीं। हां, वास्तविक समाधान बेहतर कार्य ट्रैकिंग सॉफ्टवेयर है, लेकिन यह मेरे हाथों से पूरी तरह से बाहर है।

उत्तर

74

यह गैंती के लिए एक नौकरी है!

Git-लॉग मैनपेज से: मतभेद है कि परिचय या <string> का एक उदाहरण हटाने के लिए

-S<string>

देखो। ध्यान दें कि यह diff आउटपुट में दिखाई देने वाली स्ट्रिंग से अलग है; अधिक जानकारी के लिए gitdiffcore (7) में pickaxe प्रविष्टि देखें।

आप निश्चित रूप से उसे संक्षिप्त करने के लिए उदाहरण के लिए आगे विकल्पों का उपयोग कर सकते हैं:

git log -Sfoobar --since=2008.1.1 --until=2009.1.1 -- path_containing_change 

कि अद्भुत रूप से उपयोगी नहीं है?

+9

मैं अकेला इस सुविधा की तरह महसूस लोगों git करने के लिए परिवर्तित करना चाहिए। +1 –

+1

यह बहुत अच्छा लगता है, लेकिन path_containing_change भाग कैसे काम करता है? जब मैं इसे जोड़ता हूं तो मुझे कोई परिणाम नहीं मिलता है लेकिन इसके बिना मैं प्रासंगिक काम करता हूं। – Ibrahim

+1

@ इब्राहिम संभवतः एक बग ... मैं वही व्यवहार देखता हूं जो आप करते हैं। मैं आमतौर पर चीजों का परीक्षण करता हूं, लेकिन यह दो साल पहले था इसलिए मुझे यह सुनिश्चित करने के लिए याद नहीं आया कि मैंने परीक्षण किया है या नहीं, क्योंकि गिट-लॉग (और मैन पेज) के लिए सामान्य वाक्यविन्यास से जाकर, मैं इसकी अपेक्षा करता हूं काम। सामान्य रूप से एक पथ तर्क जोड़ना जो उस पथ को प्रभावित करने के लिए प्रतिबंधित करता है। – Cascabel

0

कैसे git log --stat | grep 'filename' के बारे में यह संख्या कम से शुरू करें?

+1

मुझे कोई संकेत नहीं दिखता कि ओपी फ़ाइल नाम जानता है। हालांकि, सामान्य रूप से अच्छा दृष्टिकोण। बेशक, आप बस 'गिट लॉग फ़ाइल नाम' कर सकते हैं। – Cascabel

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