मैं गिट टूलबॉक्स में तीन टूल देखने की अनुशंसा करता हूं। पहला व्यक्ति दोष है, जो सीवी में बहुत समान है। यह आपको दिखाता है कि आखिरी बार फाइल में प्रत्येक पंक्ति को किसने स्पर्श किया। यदि आप देखना चाहते हैं कि पहले क्या था, तो आप उस प्रतिबद्धता को ले सकते हैं जो रेखा को छुआ और पिछली प्रतिबद्धता को देखें।
git show <sha1_of_interesting_commit>^ -- file/path
आप यह देखने के लिए दोष दोहरा सकते हैं कि इससे पहले क्या हुआ था।
git blame <sha1_of_interesting_commit>^ -- file/path
दूसरा उपकरण फ़ाइलों अतीत का नाम बदलता है ट्रैक करने के लिए --follow
उपयोग कर रहा है।
git log --follow -- file/path
तीसरा - और संभवतः सबसे उपयोगी टूल - लॉग करने के लिए pickaxe विकल्प है। यह हटाए गए, पेश किए गए या बदले गए लाइनों में बदलाव के लिए इतिहास की खोज करता है जिसमें टेक्स्ट का एक छोटा सा हिस्सा शामिल होता है। यह विशेष रूप से फ़ंक्शन नामों जैसी चीज़ों को ट्रैक करने के लिए उपयोगी होता है। यह किसी विशेष प्रतिबद्धता में फ़ाइल में नया हो सकता है, लेकिन क्या यह एक अलग स्रोत फ़ाइल से आया है? क्या इसे एक ही समय में जोड़ा गया था, या इससे पहले कि यह स्थानांतरित हो गया?
git log -S"Interesting_Function"
आप एक पैच या स्टेट विकल्प (जैसे -p
या --stat
) उत्पादन उन फ़ाइलों जिसका परिवर्तन वास्तव में खोज स्ट्रिंग शामिल जब तक आप भी --pickaxe-all
जहां पूरे परिवर्तन प्रदर्शित किया जाता है का उपयोग करने के लिए प्रतिबंधित कर दिया जाएगा उपयोग कर रहे हैं।
git grep
के साथ संयुक्त यह दिखाने के लिए कि स्ट्रिंग की सभी मौजूदा घटनाएं कहां हैं, पिकैक्स एक बेहद उपयोगी इतिहास खनन उपकरण है।
स्रोत
2010-01-19 20:15:29
लाइन चाल का पता लगाने के लिए गिट दोष अच्छा नहीं है (विशेष रूप से कोड को दोबारा प्रतिक्रिया देते समय)। मेरा मतलब है कि अगर एक देव ने रेखा लिखी, तो अगले देव ने किसी कारण से रेखा को ऊपर या नीचे ले जाया - गिट दोष बाद वाले को दिखाएगा। – Eimantas
मुझे नहीं लगता कि यह उत्तर सहायक है, क्योंकि 1) 'गिट दोष' आपको नहीं बताता है कि कोड का कोई विशेष टुकड़ा कहाँ से आया था - यही वह 'गिट लॉग' है। 'गिट दोष' आपको फाइल में प्रत्येक मौजूदा कोड कोड को संपादित करने के लिए अंतिम व्यक्ति को बताता है। 2) 'गिट दोष' नामों का पालन नहीं करता है, जब तक आप स्वीकार किए गए उत्तर द्वारा इंगित किए गए '--follow' पैरामीटर को जोड़ते हैं) (और तब भी, यदि फ़ाइलों को विलय, पुनर्गठित, आदि) तो यह टूट जाता है। –