मुख्य सामग्री पर जाएं

Git Blame समझाया गया: कोड इतिहास कैसे ट्रेस करें और बेहतर सहयोग करें

जानें कि Git Blame का उपयोग करके कोड परिवर्तन कैसे ट्रैक करें, लेखकों की पहचान करें, और फ़ाइल इतिहास समझें। यह गाइड मूल कमांड्स, उन्नत सुविधाएँ, और इंटीग्रेशन कवर करता है ताकि आपकी डिबगिंग और सहयोग कुशलता बढ़े।
अपडेट किया गया 25 सित॰ 2026  · 9 मि॰ पढ़ें

AI के साथ खोजें

ChatGPTClaudePerplexity

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

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

Git Blame क्या है?

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

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

Understanding Git Blame: A Developer's Guide

git blame का उपयोग क्यों करें?

टीम के साथ काम करते समय या किसी समस्या को डिबग करते समय, यह जानना उपयोगी हो सकता है कि कोड की किसी पंक्ति को आखिरी बार किसने संपादित किया। यदि हालिया अपडेट के बाद कोई बग दिखता है, तो git blame उस सटीक परिवर्तन तक पहुँचने में मदद करता है जिसने समस्या को जन्म दिया। यह डेवलपर्स को किसी विशिष्ट मुद्दे पर स्पष्टीकरण की आवश्यकता होने पर सही व्यक्ति से संपर्क करने की भी अनुमति देता है।

यह कमांड परिवर्तनों के पीछे की तर्कशीलता समझने में भी उपयोगी है। कोड टिप्पणियाँ और कमिट संदेश कभी-कभी पूरी सोच को कैप्चर करने में विफल रहते हैं। किसी परिवर्तन को एक विशिष्ट कमिट तक ट्रेस करके, डेवलपर्स संबंधित चर्चाओं की समीक्षा कर सकते हैं और व्यापक तस्वीर देख सकते हैं।

Why use git blame?

आप हमारे Git और GitHub ट्यूटोरियल में और अधिक जान सकते हैं, जो शुरुआती लोगों के लिए मार्गदर्शिका का काम करता है, Git वर्ज़न कंट्रोल के कामकाज को समझाता है और डेटा साइंस प्रोजेक्ट्स में इसकी अहम भूमिका को रेखांकित करता है।

git blame का बुनियादी उपयोग

git blame का बुनियादी सिंटैक्स है:

git blame <file>

यह कमांड हर लाइन को उस आखिरी कमिट के साथ एनोटेट करता है जिसने उसे संशोधित किया था, जिसमें लेखक, टाइमस्टैम्प और कमिट हैश शामिल होते हैं। यहाँ एक उदाहरण है:

$ git blame example.py
derrickmwiti@Derricks-MacBook-Pro remixer % git blame src/components/ContentGenerator.vue
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300    1) <template>
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300    2)   <div class="content-generator">
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300    3)     <div class="card h-100 border-0 shadow-sm">
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300    4)       <div class="card-header bg-white border-bottom-0 pt-4">
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300    5)         <div class="d-flex justify-content-between align-items-center mb-3">
289030a0 (Derrick Mwiti 2025-03-11 12:47:11 +0300    6)           <div class="d-flex align-items-center gap-2">
289030a0 (Derrick Mwiti 2025-03-11 12:47:11 +0300    7)             <h5 class="mb-0">Content Generator</h5>
289030a0 (Derrick Mwiti 2025-03-11 12:47:11 +0300    8)             <span class="badge bg-secondary" v-if="openaiModel">{{ openaiModel }}</span>
289030a0 (Derrick Mwiti 2025-03-11 12:47:11 +0300    9)           </div>
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300   10)         </div>
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300   11) 
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300   12) 
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300   13)         <nav>
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300   14)           <div class="nav nav-tabs card-header-tabs gap-1" id="nav-tab" role="tablist">
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300   15)             <button
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300   16)               v-for="platform in platforms"
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300   17)               :key="platform"
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300   18)               class="nav-link"

प्रत्येक पंक्ति में शामिल होता है:

  • कमिट हैश (^3b1aef2 और ^8f2c4d3)
  • लेखक का नाम (Derrick Mwiti)
  • आखिरी संशोधन का टाइमस्टैम्प
  • वास्तविक कोड की पंक्ति

Git Blame के व्यावहारिक उपयोग

अब जब आप git blame का बुनियादी सिंटैक्स समझ गए हैं, तो देखते हैं कि रोज़मर्रा की डेवलपमेंट स्थितियों में आप इसे कैसे लागू कर सकते हैं।

किसी विशिष्ट पंक्ति के लेखक को ढूँढना

यदि कोई फ़ाइल बड़ी है और आपको केवल एक विशेष हिस्से की जाँच करनी है, तो एक लाइन रेंज निर्दिष्ट करें:

derrickmwiti@Derricks-MacBook-Pro remixer % git blame -L 10,20  src/components/ContentGenerator.vue
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300 10)         </div>
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300 11) 
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300 12) 
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300 13)         <nav>
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300 14)           <div class="nav nav-tabs card-header-tabs gap-1" id="nav-tab" role="tablist">
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300 15)             <button
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300 16)               v-for="platform in platforms"
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300 17)               :key="platform"
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300 18)               class="nav-link"
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300 19)               :class="{ active: activeTab === platform }"
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300 20)               :id="nav-${platform}-tab"

यह लाइनों 10 से 20 पर फोकस करता है, जिससे प्रासंगिक परिवर्तनों को ढूँढना आसान हो जाता है।

git show का उपयोग करके परिवर्तनों को समझना

जहाँ git blame प्रत्येक पंक्ति के आखिरी परिवर्तन को हाइलाइट करता है, यह नहीं बताता कि उस कमिट में क्या संशोधित किया गया था। अधिक विवरण देखने के लिए, git show <commit-hash> का उपयोग करें:

derrickmwiti@Derricks-MacBook-Pro remixer % git show  28203e0
commit 28203e0f7cbe92c6baf6897a54686e87d16c9cda
Author: Derrick Mwiti <mwitiderrick@gmail.com>
Date:   Mon Mar 10 17:48:31 2025 +0300


diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..5a5809d
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,9 @@
+[*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue,css,scss,sass,less,styl}]
+charset = utf-8
+indent_size = 2
+indent_style = space
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+end_of_line = lf
+max_line_length = 100
diff --git a/.env b/.env
:

<commit-hash> को git blame से प्राप्त वास्तविक कमिट ID से बदलने पर पूरा कमिट संदेश और कोड डिफ़ दिखता है, जो परिवर्तन के पीछे के कारण को समझने में मदद करता है।

इसे और गहराई से जानने के लिए, हमारा Git Diff ट्यूटोरियल देखें, जहाँ आप बेसिक तुलना से लेकर उन्नत तकनीकों तक, git diff का उपयोग कर कोड परिवर्तनों को प्रभावी ढंग से ट्रैक करना सीखेंगे।

Git Blame की उन्नत सुविधाएँ

यहाँ कुछ और तरीके दिए गए हैं जिनसे आप वर्कफ़्लो में Git blame का उपयोग कर सकते हैं: 

Whitespace परिवर्तनों को नज़रअंदाज़ करना

कुछ फॉर्मैटिंग परिवर्तन, जैसे इंडेंटेशन ठीक करना, लॉजिक को प्रभावित नहीं करते। इन्हें फ़िल्टर करने के लिए git blame -w <file> का उपयोग करें:

derrickmwiti@Derricks-MacBook-Pro remixer % git blame -w src/components/ContentGenerator.vue       
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300    1) <template>
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300    2)   <div class="content-generator">
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300    3)     <div class="card h-100 border-0 shadow-sm">
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300    4)       <div class="card-header bg-white border-bottom-0

विशिष्ट रिवीज़न को नज़रअंदाज़ करना

यदि कुछ कमिट्स (जैसे थोक रीफ़ॉर्मेटिंग) blame इतिहास को अव्यवस्थित कर रहे हों, तो उन्हें git blame --ignore-rev <commit-hash> <file> के साथ नज़रअंदाज़ किया जा सकता है:

derrickmwiti@Derricks-MacBook-Pro remixer % git blame --ignore-rev 28203e0 src/components/ContentGenerator.vue 
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300    1) <template>
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300    2)   <div class="content-generator">
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300    3)     <div class="card h-100 border-0 shadow-sm">
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300    4)       <div class="card-header bg-white border-bottom-0 pt-4">
^28203e0 (Derrick Mwiti 2025-03-10 17:48:31 +0300    5)         <div class="d-flex justify-content-between align-items-center mb-3">
289030a0 (Derrick Mwiti 2025-03-11 12:47:11 +0300    6)           <div class="d-flex align-items-center gap-2">

कई कमिट्स को लगातार नज़रअंदाज़ करने के लिए, आप उन्हें एक फ़ाइल में सूचीबद्ध कर सकते हैं और --ignore-revs-file विकल्प का उपयोग करके उसका संदर्भ दे सकते हैं। इससे अप्रासंगिक परिवर्तनों को बाहर रखकर blame इतिहास साफ़ रखने में मदद मिलती है।

अपने रिपोजिटरी की रूट डायरेक्टरी में .git-blame-ignore-revs नामक फ़ाइल बनाएँ। जिन कमिट हैश को नज़रअंदाज़ करना है, उन्हें सूचीबद्ध करें, स्पष्टता के लिए वैकल्पिक रूप से टिप्पणियाँ जोड़ें:

# Commit introducing code formatting changes
a926bba49c89a5b882cd298be3af2570b1e6252c

निर्दिष्ट रिवीज़न को नज़रअंदाज़ करने के लिए निम्न कमांड चलाएँ:​

git blame --ignore-revs-file .git-blame-ignore-revs filename

Git को डिफ़ॉल्ट रूप से आपकी ignore फ़ाइल उपयोग करने के लिए निर्देश देने हेतु यह कमांड चलाएँ:

git config blame.ignoreRevsFile .git-blame-ignore-revs

नाम की जगह लेखक के ईमेल देखना

लेखक का नाम दिखाने की बजाय उसका ईमेल दिखाने के लिए:

derrickmwiti@Derricks-MacBook-Pro remixer % git blame --show-email  src/components/PostsManager.vue
dbe547ec (<derrick@gmail.com> 2025-03-11 09:22:59 +0300   1) <template>
dbe547ec (<derrick@gmail.com> 2025-03-11 09:22:59 +0300   2)   <div class="posts-manager">
dbe547ec (<derrick@gmail.com> 2025-03-11 09:22:59 +0300   3)     <h3>Saved Posts</h3>
dbe547ec (<derrick@gmail.com> 2025-03-11 09:22:59 +0300   4)     
dbe547ec (<derrick@gmail.com> 2025-03-11 09:22:59 +0300   5)     <div v-if="loading" class="text-center my-4">
dbe547ec (<derrick@gmail.com> 2025-03-11 09:22:59 +0300   6)       <div class="spinner-border text-primary" role="status">

यह किसी विशिष्ट परिवर्तन के लिए ज़िम्मेदार व्यक्ति से संपर्क करने में उपयोगी हो सकता है।

पूर्ण कमिट हैश दिखाना

डिफ़ॉल्ट रूप से, git blame छोटे कमिट हैश दिखाता है। पूर्ण हैश देखने के लिए यह चलाएँ:

derrickmwiti@Derricks-MacBook-Pro remixer % git blame --abbrev=40 src/components/PostsManager.vue
dbe547ec4ece7cb2a1ff3dadb4770cc9ee9f161e (Derrick Mwiti 2025-03-11 09:22:59 +0300   1) <template>
dbe547ec4ece7cb2a1ff3dadb4770cc9ee9f161e (Derrick Mwiti 2025-03-11 09:22:59 +0300   2)   <div class="posts-manager">
dbe547ec4ece7cb2a1ff3dadb4770cc9ee9f161e (Derrick Mwiti 2025-03-11 09:22:59 +0300   3)     <h3>Saved Posts</h3>
dbe547ec4ece7cb2a1ff3dadb4770cc9ee9f161e (Derrick Mwiti 2025-03-11 09:22:59 +0300   4)     
be547ec4ece7cb2a1ff3dadb4770cc9ee9f161e (Derrick Mwiti 2025-03-11 09:22:59 +0300   5)     <div v-if="loading" class="text-center my-4">

आप --abbrev=<n> विकल्प का उपयोग करके Git blame में हैश संक्षेप की लंबाई समायोजित कर सकते हैं।

Visual Studio Code में git blame का उपयोग

जो डेवलपर्स Visual Studio Code का उपयोग करते हैं, उनके लिए Git Blame एक्सटेंशन git blame के लिए अंतर्निहित सपोर्ट प्रदान करता है। 

यह एक्सटेंशन उपयोगकर्ताओं को अनुमति देता है:

  • इनलाइन blame एनोटेशन देखें।
  • लाइनों पर होवर कर कमिट विवरण देखें।
  • पूरी फ़ाइल और लाइन हिस्ट्री तक पहुँचें।

Git Blame सर्वोत्तम प्रथाएँ

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

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

Git Blame Collaboration Cycle

निष्कर्ष 

इस लेख में, हमने कवर किया कि git blame डेवलपर्स को उनके कोड में हुए परिवर्तनों को ट्रैक करने में कैसे मदद करता है। बुनियादी उपयोग से लेकर उन्नत सुविधाओं तक, हमने देखा कि यह कमांड किसी फ़ाइल को किसने और कब संशोधित किया, इस पर स्पष्टता प्रदान करता है।

आप इस कमांड को अन्य Git टूल्स, जैसे git show, के साथ इंटीग्रेट कर और इग्नोर्ड रिवीज़न कॉन्फ़िगर कर इसे और बेहतर बना सकते हैं। चाहे आप किसी समस्या को डिबग कर रहे हों, परिवर्तनों की समीक्षा कर रहे हों, या केवल किसी फ़ाइल के इतिहास को समझ रहे हों, git blame ऐसी मूल्यवान अंतर्दृष्टि देता है जो कोड मेंटेनेंस और सहयोग में सुधार करती है।

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

Git Blame FAQs

git blame में whitespace परिवर्तन कैसे नज़रअंदाज़ कर सकता/सकती हूँ?

आप -w विकल्प का उपयोग उन परिवर्तनों को नज़रअंदाज़ करने के लिए कर सकते हैं जो केवल whitespace से संबंधित हों, जैसे इंडेंटेशन या स्पेसिंग समायोजन।

git blame में किसी विशेष परिवर्तन के कमिट विवरण कैसे ढूँढूँ?

git blame से कमिट हैश पहचानने के बाद, उस कमिट का विवरण देखने के लिए git show का उपयोग करें, जिसमें किए गए परिवर्तन शामिल होंगे।

मैं git blame परिणामों से कुछ कमिट्स को कैसे बाहर कर सकता/सकती हूँ?

यदि आप विशिष्ट कमिट्स (उदा., कोड फॉर्मैटिंग परिवर्तन) को नज़रअंदाज़ करना चाहते हैं, तो इसका उपयोग करें:

git blame --ignore-rev <commit-hash> <file>

कई कमिट्स को नज़रअंदाज़ करने के लिए, उन्हें .git-blame-ignore-revs फ़ाइल में रखें और चलाएँ:

git blame --ignore-revs-file .git-blame-ignore-revs <file>

क्या Visual Studio Code में git blame का उपयोग करने का कोई तरीका है?

हाँ, VS Code में Git Blame एक्सटेंशन इनलाइन blame एनोटेशन, कमिट इतिहास और विस्तृत इनसाइट्स प्रदान करता है। आप इसकी सेटिंग्स के माध्यम से blame एनोटेशन सक्षम या अनुकूलित कर सकते हैं।

विषय
Git

शीर्ष DataCamp कोर्स

कोर्स

Git परिचय

2 घंटा
102.7K
अपने सॉफ़्टवेयर और डेटा प्रोजेक्ट्स में version control के लिए Git की मूल बातें जानें।
विवरण देखेंRight Arrow
पाठ्यक्रम शुरू करें
और देखेंRight Arrow