"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > थोक स्वरूपण परिवर्तनों को अनदेखा करने के लिए `.git-blame-ignore-revs`।

थोक स्वरूपण परिवर्तनों को अनदेखा करने के लिए `.git-blame-ignore-revs`।

2024-11-03 को प्रकाशित
ब्राउज़ करें:556

.git-blame-ignore-revs संस्करण 2.23 में पेश किया गया एक Git फीचर है जो आपको git दोष परिणामों में विशिष्ट प्रतिबद्धताओं को अनदेखा करने की अनुमति देता है। यह बल्क कमिट के लिए विशेष रूप से उपयोगी है जो कोड की वास्तविक कार्यक्षमता में बदलाव किए बिना बड़ी संख्या में लाइनें बदलता है, जैसे कि फ़ॉर्मेटिंग परिवर्तन, नाम बदलना, या कोडबेस में कोडिंग मानकों को लागू करना। इन गैर-कार्यात्मक परिवर्तनों को अनदेखा करके, गिट दोष सार्थक संपादनों पर ध्यान केंद्रित कर सकता है जो कोड के पीछे के संदर्भ और तर्क को समझाते हैं।

क्यों .git-blame-ignore-revs मायने रखता है

जब आप किसी फ़ाइल पर गिट ब्लेम का उपयोग करते हैं, तो यह आपको दिखाता है कि लेखक और टाइमस्टैम्प के साथ फ़ाइल की प्रत्येक पंक्ति को अंतिम बार किसने बदला था। यह यह पता लगाने के लिए उपयोगी है कि किसी विशेष पंक्ति को क्यों बदला गया। हालाँकि, यदि कोई बड़ी प्रतिबद्धता जो विशुद्ध रूप से स्वरूपण परिवर्तन करती है, जैसे प्रीटियर लागू करना, इतिहास का हिस्सा है, तो गिट दोष कई पंक्तियों के लिए उस प्रतिबद्धता को इंगित कर सकता है। इससे वास्तविक कार्यात्मक परिवर्तन इतिहास का पता लगाना कठिन हो जाता है।

उदाहरण के लिए, यदि आपकी टीम संपूर्ण कोडबेस को पुन: स्वरूपित करने के लिए प्रीटियर या ईएसलिंट जैसे टूल का उपयोग करती है, तो परिणामी प्रतिबद्धता कोड की हजारों पंक्तियों को छू सकती है। .git-blame-ignore-revs के बिना, git ब्लेम इस प्रतिबद्धता को प्रत्येक प्रभावित पंक्ति के लिए जिम्मेदार के रूप में दिखाएगा, जो प्रत्येक पंक्ति के पीछे के अधिक सार्थक इतिहास को अस्पष्ट कर सकता है।

.git-blame-ignore-revs का उपयोग करके, आप गिट ब्लेम को इन कमिटों को छोड़कर उन महत्वपूर्ण परिवर्तनों पर ध्यान केंद्रित करने के लिए कह सकते हैं।

कैसे उपयोग करें .git-blame-ignore-revs

इस सुविधा का उपयोग कैसे करें यह समझने के लिए, आइए रिएक्ट रिपॉजिटरी से एक उदाहरण देखें।

चरण 1: बल्क फ़ॉर्मेटिंग कमिट की पहचान करें

रिएक्ट सोर्स कोड में बल्क कमिट शामिल हैं जहां प्रीटियर जैसे टूल पूरे प्रोजेक्ट में चलाए गए थे। यहां दो ऐसी प्रतिबद्धताएं हैं:

`.git-blame-ignore-revs` to ignore bulk formatting changes.

  1. प्रतिबद्धता: c998bb1 संदेश: [कंपाइलर] सुंदर चलाएं, स्नैप ठीक करें यह कमिट कार्यक्षमता को बदले बिना कई पंक्तियों को बदलते हुए, कोडबेस पर प्रीटियर फ़ॉर्मेटिंग लागू करती है।

`.git-blame-ignore-revs` to ignore bulk formatting changes.

2. प्रतिबद्ध: fd2b3e1

संदेश: कंपाइलर: अनफोर्क प्रिटियर कॉन्फिग

इस कमिट में प्रीटियर कॉन्फ़िगरेशन के और अपडेट शामिल हैं, जो रिपॉजिटरी में सभी .ts और .tsx फ़ाइलों को प्रभावित करते हैं।

`.git-blame-ignore-revs` to ignore bulk formatting changes.

ये कमिट केवल फ़ॉर्मेटिंग से संबंधित हैं और यह जांच करते समय सार्थक संदर्भ प्रदान नहीं करते हैं कि कोड की एक पंक्ति इस तरह क्यों लिखी गई थी।

चरण 2: .git-blame-ignore-revs फ़ाइल बनाएं

गिट ब्लेम को इन बल्क फ़ॉर्मेटिंग कमिट्स को अनदेखा करने के लिए, हम रिपॉजिटरी के रूट में एक .git-blame-ignore-revs फ़ाइल बना सकते हैं।

  1. .git-blame-ignore-revs फ़ाइल बनाएं:
touch .git-blame-ignore-revs

2. फ़ाइल में प्रासंगिक कमिट हैश जोड़ें, यह समझाते हुए कि प्रत्येक कमिट को अनदेखा क्यों किया जा रहा है। इस मामले में, हम पहले पहचाने गए दो कमिट जोड़ देंगे:

# Prettier formatting changes 
c998bb1ed4b3285398c9c7797135d3f060243c6a 
fd2b3e13d330a4559f5aa21462e1cb2cbbcf144b

3. .git-blame-ignore-revs फ़ाइल को रिपॉजिटरी में सहेजें। इस फ़ाइल को आपके कोड के साथ संस्करणित किया जा सकता है, जिससे पूरी टीम को अनदेखा किए गए कमिट की समान सूची का उपयोग करने की अनुमति मिलती है।

चरण 3: Git को उपयोग करने के लिए कॉन्फ़िगर करें .git-blame-ignore-revs

हर बार जब आप git ब्लेम का उपयोग करते हैं तो --ignore-revs-file विकल्प टाइप करने से बचने के लिए, आप .git-blame-ignore-revs फ़ाइल का स्वचालित रूप से उपयोग करने के लिए Git को कॉन्फ़िगर कर सकते हैं।

  1. रिपॉजिटरी स्तर पर कॉन्फ़िगरेशन सेट करें:
git config blame.ignoreRevsFile .git-blame-ignore-revs

यह सुनिश्चित करता है कि जब भी कोई इस रिपॉजिटरी में गिट ब्लेम चलाता है, तो गिट स्वचालित रूप से .git-blame-ignore-revs में सूचीबद्ध कमिट्स को अनदेखा कर देगा।

चरण 4: इग्नोर किए गए कमिट्स के साथ गिट ब्लेम चलाएँ

आइए देखें कि यह व्यवहार में कैसे काम करता है। बल्क फ़ॉर्मेटिंग प्रतिबद्धताओं को नज़रअंदाज किए बिना, गिट दोष दिखा सकता है:

$ git blame src/someFile.tsx
c998bb1e (Joe Bloggs 2023-03-15 10:00:00  0200 1) import React from 'react';
fd2b3e13 (Alan 2023-04-01 14:15:30  0200 2) function App() {
c998bb1e (Joe Bloggs 2023-03-15 10:00:00  0200 3)     return 
Hello, world!
; fd2b3e13 (Ben 2023-04-01 14:15:30 0200 4) }

यह आउटपुट इंगित करता है कि लाइन 1 और 3 में अंतिम परिवर्तन प्रीटियर फ़ॉर्मेटिंग कमिट (c998bb1e) के कारण था, और लाइन 2 और 4 को एक अन्य बल्क कमिट (fd2b3e13) में संशोधित किया गया था। चूँकि ये स्वरूपण परिवर्तन हैं, यह समझने में मददगार नहीं है कि इन पंक्तियों के पीछे वास्तविक तर्क किसने प्रस्तुत किया।

.git-blame-ignore-revs को कॉन्फ़िगर करने के बाद, git ब्लेम चलाने से बल्क कमिट्स छूट जाएंगी और वास्तविक इतिहास दिखाई देगा:

$ git blame src/someFile.tsx
a23d9b34 (May 2022-12-01 09:30:00  0200 1) import React from 'react';
b12e45a6 (JJ 2022-12-05 11:45:15  0200 2) function App() {
a23d9b34 (Joe 2022-12-01 09:30:00  0200 3)     return 
Hello, world!
; b12e45a6 (Ram 2022-12-05 11:45:15 0200 4) }

अब, गिट ब्लेम महत्वहीन फ़ॉर्मेटिंग परिवर्तनों को अनदेखा करते हुए, लाइनों को सही कमिट्स का श्रेय देता है। यह हमें उपयोगी जानकारी देता है, जिससे पता चलता है कि वास्तविक कार्यात्मक परिवर्तन किसने किए।

निष्कर्ष

Git 2.23 में .git-blame-ignore-revs सुविधा बल्क फ़ॉर्मेटिंग या शैली परिवर्तन वाले प्रोजेक्ट्स के लिए गेम-चेंजर है। एक .git-blame-ignore-revs फ़ाइल सेट करके और अपनी रिपॉजिटरी को कॉन्फ़िगर करके, आप कोडिंग मानकों को लागू कर सकते हैं, प्रीटियर जैसे टूल चला सकते हैं, या दोष इतिहास को प्रदूषित करने की चिंता किए बिना रिफैक्टर कोड चला सकते हैं।

इस दृष्टिकोण के साथ, आपकी टीम सार्थक परिवर्तनों को ट्रैक करने की क्षमता का त्याग किए बिना आत्मविश्वास से कोड की गुणवत्ता और स्वरूपण में सुधार कर सकती है, यह सुनिश्चित करते हुए कि गिट दोष कोड की प्रत्येक पंक्ति के पीछे के इतिहास और तर्क को समझने के लिए एक मूल्यवान उपकरण बना हुआ है।

हमारे बारे में:

थिंक थ्रू में, हम ओपन-सोर्स परियोजनाओं में उपयोग की जाने वाली उन्नत कोडबेस वास्तुशिल्प अवधारणाओं को सिखाने के मिशन पर हैं।

नेक्स्ट.जेएस/रिएक्ट में उन्नत वास्तुशिल्प अवधारणाओं का अभ्यास करके अपने कोडिंग कौशल को 10 गुना करें, सर्वोत्तम प्रथाओं को सीखें और उत्पादन-ग्रेड परियोजनाओं का निर्माण करें।

हम खुले स्रोत हैं - https://github.com/thinkthroo/thinkthroo (हमें एक स्टार अवश्य दें!)

कोडबेस आर्किटेक्चर पर आधारित हमारे उन्नत पाठ्यक्रमों के साथ अपनी टीम को कुशल बनाएं। अधिक जानने के लिए [email protected] पर हमसे संपर्क करें!

संदर्भ:

  1. https://github.com/facebook/react/blob/main/.git-blame-ignore-revs

  2. https://gist.github.com/kateinoigakumun/b0bc920e587851bfffa98b9e279175f2

  3. https://github.com/facebook/react/commit/c998bb1ed4b3285398c9c7797135d3f060243c6a

  4. https://moxio.com/blog/ignoring-bulk-change-commits-with-git-blame/



विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/thinkthroo/git-blame-ignore-revs-to-ignore-bulk-formatting-changes-5fee?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163.com पर संपर्क करें। इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3