2010-05-15 14 views
43

द्वारा खोए गए लाइन को ढूंढें मेरे पास मेरे गिट रिपोजिटरी में कहीं भी "फू" शब्द वाली एक पंक्ति थी जो पहले कुछ सैकड़ों काम करती है।गिट इतिहास - कीवर्ड

यदि इसके संशोधन संख्या को खोजने का कोई तरीका है जहां यह FishEye खरीदने के बिना आखिरी बार था?

उत्तर

73

गैंती से संबोधित किया जा सकता है कि (-S) gitlog

git log -SFoo -- path_containing_change 

का विकल्प (आप भी एक समय सीमा जोड़ सकते हैं: --since=2009.1.1 --until=2010.1.1) अंतर के लिए

-S<string> 

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

diffcore-pickaxe 

यह परिवर्तन filepairs कि परिवर्तन है कि किसी निर्दिष्ट स्ट्रिंग को छूने का प्रतिनिधित्व करते हैं पता लगाने के लिए प्रयोग किया जाता है।
जब diffcore-pickaxe उपयोग में है, तो यह जांचता है कि फाइलपियर हैं जिनके "मूल" पक्ष में निर्दिष्ट स्ट्रिंग है और जिसका "परिणाम" पक्ष नहीं है।
इस तरह की एक फ़ाइलपियर "स्ट्रिंग में दिखाई देने वाली स्ट्रिंग" का प्रतिनिधित्व करती है।
यह निर्दिष्ट मामले के लिए भी जांच करता है जो निर्दिष्ट स्ट्रिंग को खो देता है।


अद्यतन 2014:

तब से, आप (nilbus के से answer) कर सकते हैं:

git log -p --all -S 'search string' 
git log -p --all -G 'match regular expression' 

इन लॉग की सूची है कि को जोड़ने या निकालने दिया करता आदेश खोज स्ट्रिंग/रेगेक्स, (आमतौर पर) हाल ही में पहले।
-p (--patch) विकल्प प्रासंगिक diff को दिखाया जा सकता है जहां पैटर्न जोड़ा गया था या हटा दिया गया था, ताकि आप इसे संदर्भ में देख सकें।

पाया करने के बाद एक प्रासंगिक प्रतिबद्ध है कि पाठ आप देख रहे थे कहते हैं (जैसे 8beeff00d।), शाखाओं कि शामिल करने लगता है:

git branch -a --contains 8beeff00d 

(मैं संदर्भ लेने में पिछले आदेश "How to list branches that contain a given commit?")

+0

स्वयं को ध्यान दें: '--pickaxe-all' और' -S' के बीच संबंध http://lists-archives.org/git/715566-git-log-why-are- पूर्ण-diff-and-pickaxe-all-different-options.html और http://article.gmane.org/gmane.comp.version-control.git/34909 – VonC

+0

नोटबीस: पिकैक्स विकल्प अभी तक एक और कमांड/विकल्प था जिसे मैंने जेफोमी के उत्तरों का पालन करने के बारे में सीखा: http: // stackoverflow।कॉम/प्रश्न/2700140/कैसे-डू-आई-सर्च-गिट-इतिहास-के-गायब-रेखा: अपने मूल उत्तर को ऊपर उठाएं;) "बेहद उपयोगी", क्योंकि उनके जवाब आमतौर पर होते हैं। (http://stackoverflow.com/users/119963/jefromi) – VonC

+0

काफी चिल्लाओ, धन्यवाद! इसके विपरीत, मैं हमेशा जानता हूं कि क्या आपने कोई प्रश्न मारा है, मुझे जवाब देने की कोई आवश्यकता नहीं है। – Cascabel

1

सबसे खराब स्थिति परिदृश्य, git bisect और grep का उपयोग करें?

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