आप git log
स्वरूपण का उपयोग कर सकते हैं ताकि फ़ाइल में पिछले कामों के हैंश प्राप्त हो सकें। उदाहरण के लिए,
git log --pretty=format:'%h' -1 --skip=1 <filename>
आपको एक विशिष्ट फ़ाइल को छूने के लिए अंतिम प्रतिबद्धता के लिए दूसरा स्थान मिलेगा। वास्तव में, यदि आप एक फ़ाइल नाम निर्दिष्ट नहीं करते हैं, तो यह आपको संपूर्ण भंडार पर अंतिम प्रतिबद्ध करने के लिए दूसरा स्थान प्राप्त करेगा।
[alias]
prior-hash = "!ph() { git log --pretty=format:'%h' -1 --skip=$1 $2; }; ph"
इसका इस्तेमाल करने के लिए आपको git prior-hash n <filename>
, जहां n (एन + 1) वें है की तरह कुछ टाइप करेंगे: पुराने हैश प्राप्त करने के लिए, आप एक Git उर्फ एक खोल फ़ंक्शन को कॉल करने, इस तरह सेट कर सकते हैं फ़ाइल का सबसे हालिया संस्करण। तो फ़ाइल को अंतिम प्रतिबद्ध करने के लिए दूसरा 2 होगा, 2 अंतिम से तीसरा होगा, आदि, और 0 उस फ़ाइल को छूने के लिए सबसे हालिया प्रतिबद्धता होगी। और फिर, फ़ाइल नाम वैकल्पिक है, यदि आप पूरी तरह से रेपो की जांच करना चाहते हैं।
मुझे यकीन है कि आप यह पता लगाने सकता है वहाँ से एक diff आदेश का निर्माण करने के लिए कैसे कर रहा हूँ:
[alias]
prior-hash = "!ph() { git log --pretty=format:'%h' -1 --skip=$1 $2; }; ph"
diff-prev-easy = "!dp() { git diff $(git prior-hash $1 $2).. $2; }; dp"
जो पूर्व-हैश उर्फ, git diff-prev-easy n <filename>
के समान इस्तेमाल किया जाएगा। यह फ़ाइल के सबसे हालिया संशोधन के लिए अंतिम संशोधन (एन + 1) की तुलना करेगा।
[alias]
prior-hash = "!ph() { git log --pretty=format:'%h' -1 --skip=$1 $2; }; ph"
diff-prev = "!dp() { git diff $(git prior-hash $1 $2)..$(git prior-hash $(($1 - 1)) $2) $2; }; dp"
, फिर से, एक ही तरह से प्रयोग किया जाता है जो: git diff-prev n <filename>
एक संभावित आप के बजाय वें पिछले संशोधन के वें पिछले संशोधन (n + 1) की तुलना करना चाहते हैं तो यह एक साधारण परिवर्तन है हालांकि, देखने के लिए समस्या यह है कि git log
सूचियां क्रोनोलॉजिकल ऑर्डर में होती हैं, जो आप नहीं चाहते हैं। इस इतिहास पर विचार करें:
1 - 2 - - - 4 - 5 master
\ /
3 - - develop
हमारे git diff-prev 1
आदेश की उम्मीद के रूप में, के बीच प्रतिबद्ध 4 और 5 diff का उत्पादन होगा। लेकिन git diff-prev 2
प्रतिबद्धता 3 और 4 के बीच अंतर दिखाएगा, जो संभवतः अवांछित है।
क्या आप वाकई 'गिट दोष' नहीं चाहते हैं? –