मेरा मानना है कि इसके लिए कुछ भी अंतर्निहित नहीं है। यह इस तथ्य से मुश्किल बना हुआ है कि एक ही लाइन के लिए कई बार फ़ाइल को बदलना बहुत ही कम है, बाकी फाइल भी काफी हद तक बदलती रहती है, इसलिए आप लाइन नंबर को बहुत बदलकर समाप्त कर देंगे।
यदि आप पर्याप्त भाग्यशाली हैं कि लाइन में हमेशा कुछ पहचान की विशेषता होती है, उदाहरण के लिए एक चर के लिए एक असाइनमेंट जिसका नाम कभी नहीं बदला है, तो आप के लिए regex पसंद का उपयोग कर सकते हैं git blame -L
। उदाहरण के लिए:
git blame -L '/variable_name *= */',+1
लेकिन यह केवल पहले पाता है उस रेगेक्स के लिए मैच , इसलिए यदि आपके पास लाइन से मेल खाने का अच्छा तरीका नहीं है, तो यह बहुत उपयोगी नहीं है।
आप कुछ हैक कर सकते हैं, मुझे लगता है। मेरे पास अभी कोड लिखने का समय नहीं है, लेकिन ... इन पंक्तियों के साथ कुछ। भागो git blame -n -L $n,$n $file
। पहला क्षेत्र पिछली प्रतिबद्ध छुआ हुआ है, और दूसरा क्षेत्र उस प्रतिबद्ध में पंक्ति संख्या है , क्योंकि यह बदल सकता है। उन लोगों को पकड़ो, और चलाएं git blame -n $n,$n $commit^ $file
, यानी आखिरी बार फाइल बदलने से पहले कमिट से शुरू होने वाली एक ही चीज।
(ध्यान दें कि यह विफल हो जाएगा यदि अंतिम प्रतिबद्ध जिसने रेखा को बदल दिया था, तो यह विलय का एक प्रतिबद्ध था। प्राथमिक रूप से ऐसा हो सकता है यदि रेखा को मर्ज संघर्ष समाधान के हिस्से के रूप में बदल दिया गया हो।)
संपादित करें: मैं मार्च 2011 से आज की इस मेलिंग सूची पोस्ट में हुआ था, जिसमें उल्लेख किया गया है tig
और git gui
इसमें एक विशेषता है जो आपको ऐसा करने में मदद करेगी। ऐसा लग रहा है कि फीचर को माना गया है, लेकिन खत्म नहीं किया गया है, खुद के लिए।