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

गिट लॉग कमांड बहुत बड़ा है, किसी भी नियमित गिट कमांड में सबसे बड़ा। इसका मैनुअल 2,500 लाइनों से अधिक लंबा है। सौभाग्य से, गिट लॉग केवल कुछ प्रमुख विकल्पों में से अपना अधिकांश उपयोगी व्यवहार प्रदान करता है।

डिफ़ॉल्ट व्यवहार के साथ मूल लॉगिंग

डिफ़ॉल्ट रूप से, गिट लॉग कमिट्स की एक रिवर्स-कालानुक्रमिक सूची दिखाता है। प्रत्येक प्रतिबद्धता में उसका हैश, लेखक, दिनांक और प्रतिबद्ध संदेश शामिल होता है:

आदेश पूर्ण आउटपुट दिखाने के लिए एक पेजर (जैसे कम, अधिक) का उपयोग करता है ताकि आप परिणामों को आसानी से नेविगेट कर सकें। आप अपनी पसंद के प्रोग्राम का उपयोग करने के लिए Git को कॉन्फ़िगर कर सकते हैं, जैसे सबसे पेजर.

यहाँ से कुछ git लॉग आउटपुट दिया गया है गिट स्रोत कोड का भंडार अपने आप:

प्रतिबद्ध 670b81a890388c60b7032a4f5b879f2ece8c4558 (हेड -> मास्टर, मूल/अगला,
मूल/गुरु, मूल/प्रमुख)
लेखक: जूनियो सी हमनो
दिनांक: सोम जून 14 13:23:28 2021 +0900 2021
दूसरा बैच
साइन-ऑफ़-बाय: जूनियो सी हमानो

परिणाम प्रतिबद्ध हैश से शुरू होता है (670...) के बाद शाखाओं की एक सूची है जो वर्तमान में उस प्रतिबद्धता को इंगित करती है (सिर -> मास्टर, आदि।)

अगली पंक्ति इस कमिट के लेखक का वर्णन करती है, उनका नाम और ईमेल पता देती है।

प्रतिबद्धता की पूरी तिथि और समय अगली पंक्ति पर चलता है।

अंत में, प्रतिबद्ध संदेश की पूरी सामग्री प्रकट होती है। आप कमांड-लाइन विकल्पों के साथ git log ऑफ़र की अधिकांश चीज़ों को नियंत्रित कर सकते हैं। दो मुख्य प्रकार के विकल्प हैं:

  • स्वरूपण, जो परिभाषित करता है कि गिट प्रत्येक प्रतिबद्धता को कैसे प्रदर्शित करता है।
  • फ़िल्टरिंग, जो परिभाषित करता है कि कौन सा करता है गिट लॉग शामिल है।

कमांड-लाइन विकल्पों के अलावा, git log उन तर्कों को स्वीकार करता है जो फाइलों, कमिट्स, शाखाओं या अन्य प्रकार के संदर्भों को निर्दिष्ट करते हैं। ये आगे फ़िल्टरिंग लागू करते हैं।

Git लॉग आउटपुट को फ़ॉर्मेट करना

सबसे सरल समायोजनों में से एक है --एक लकीर विकल्प जो एक बहुत ही संक्षिप्त आउटपुट उत्पन्न करता है:

गिट लॉग --ऑनलाइन

लॉग में प्रत्येक पंक्ति में अब केवल एक संक्षिप्त प्रतिबद्ध हैश और विषय शामिल है प्रतिबद्ध संदेश. परियोजना के लिए हाल ही में किए गए कार्यों का अवलोकन प्राप्त करने का यह एक शानदार तरीका है:

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

एक शाखा ग्राफ देखना

--ग्राफ विकल्प आपको शाखाओं के बीच संबंधों की कल्पना करने की अनुमति देता है। यह बहुत ही बुनियादी है लेकिन एक जटिल इतिहास को सुलझाने में मदद कर सकता है।

गिट लॉग --ऑनलाइन --ग्राफ

सम्बंधित: गिट में एक नई शाखा कैसे बनाएं

अनुकूलित सुंदर आउटपुट

आप इसका उपयोग करके विस्तार से निर्दिष्ट करके अधिक जटिल स्वरूपण प्राप्त कर सकते हैं --सुंदर हे विकल्प। वाक्य रचना बहुत सरल से बहुत अधिक जटिल हो जाती है, इसलिए संपूर्ण विवरण के लिए एक मैनुअल से परामर्श करें.

गिट लॉग --सुंदर = छोटा

अनिवार्य रूप से समान है गिट लॉग दिनांक या पूर्ण संदेश के बिना:

गिट लॉग --सुंदर = ऑनलाइन

के बराबर है गिट लॉग --ऑनलाइन.

गिट लॉग --सुंदर = फुलर

बहुत सारे विवरण शामिल हैं। यह लेखक और कमिटर को भी अलग करता है, जो सिद्धांत रूप में, अलग-अलग लोग हो सकते हैं:

उसके साथ प्रारूप: प्रकार, आप एक स्ट्रिंग की आपूर्ति कर सकते हैं जिसमें आप जो भी सामग्री चाहते हैं, जिसमें प्लेसहोल्डर शामिल हैं जिन्हें विभिन्न डेटा द्वारा प्रतिस्थापित किया जाता है। यहां कुछ उदाहरण प्लेसहोल्डर दिए गए हैं:

  • % एच प्रतिबद्ध हैश
  • % एच संक्षिप्त प्रतिबद्ध हैश
  • % विज्ञापन लेखक तिथि
  • %ar लेखक तिथि, रिश्तेदार
  • %s संदेश विषय प्रतिबद्ध करें
  • %बी संदेश निकाय प्रतिबद्ध करें
  • %p संक्षिप्त माता-पिता हैश

आप आउटपुट में निश्चित वर्ण जोड़ सकते हैं और इसे रंगीन कर सकते हैं। यह उदाहरण दिनांक प्रारूप में भिन्नता भी दिखाता है:

git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short

ध्यान दें कि कोष्ठक दिनांक को घेरते हैं। आप जो भी स्वरूपण चुनते हैं, यदि आप चाहते हैं कि आउटपुट पाइपलाइन में या टेक्स्ट प्रोसेसिंग के अन्य रूपों के लिए उपयोगी हो, तो आपको इस बात पर विचार करना चाहिए कि आउटपुट के प्रत्येक भाग का सीमांकन कैसे किया जाए।

लॉग में कठिनाइयाँ दिखा रहा है

एक भंडार के इतिहास को देखते समय एक महत्वपूर्ण विवरण स्वयं भिन्न होता है। वे प्रतिनिधित्व करते हैं कि वास्तव में कोड में क्या बदला है! शुरुआत के लिए, आप प्रत्येक प्रतिबद्धता के साथ परिवर्तनों का सारांश प्राप्त कर सकते हैं --शॉर्टस्टैट:

गिट लॉग --शॉर्टस्टैट

यह एक पंक्ति जोड़ता है जैसे:

1 फ़ाइल बदली गई, 48 प्रविष्टियां (+), 2 हटाना (-)

प्रत्येक प्रतिबद्धता की तह तक। उदाहरण के लिए, आप अक्सर इस तरह का सारांश देखेंगे - GitHub पर पूरे पृष्ठ - और यह एक विशिष्ट प्रतिबद्धता के दायरे को जल्दी से पहचानने का एक उपयोगी तरीका है। अधिक विस्तृत जानकारी के लिए, आप का उपयोग करके पूर्ण पैच आउटपुट (diffs) शामिल कर सकते हैं -पी झंडा:

गिट लॉग -पी

Git लॉग आउटपुट को फ़िल्टर करना

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

राशि द्वारा प्रतिबंधित

यदि आप हाल के कुछ कमिट दिखाने के लिए परिणामों को ट्रिम करना चाहते हैं, तो इसका उपयोग करें - [संख्या] वाक्य - विन्यास:

गिट लॉग -2

तिथि के अनुसार प्रतिबंधित

कमिट्स के सेट को किसी निश्चित दिनांक सीमा तक सीमित करने के लिए, का उपयोग करें --जबसे (--के पश्चात) तथा -- तक (--इससे पहले) विकल्प। ये प्रत्येक आईएसओ 8601 प्रारूप में एक तिथि लेते हैं। आप या तो उपयोग कर सकते हैं --जबसे या -- तक अपने दम पर, या दोनों एक साथ एक सीमा निर्दिष्ट करने के लिए। विकल्प --के पश्चात तथा --इससे पहले समानार्थी हैं।

git log --since="2021-01-01" --until="2021-05-01"

फ़ाइल द्वारा प्रतिबंधित

गिट लॉग आपके भंडार में प्रत्येक फ़ाइल के बजाय एक विशिष्ट फ़ाइल पर ध्यान केंद्रित कर सकता है। यह पता लगाने में आपकी मदद करने के लिए बहुत अच्छा है कि समय के साथ कोई विशेष फ़ाइल कैसे बदली है। बस फ़ाइल नाम को अपने git कमांड के अंत में संलग्न करें:

गिट लॉग फ़ाइल नाम

आप केवल वही देखेंगे जो प्रभावित हुए हैं फ़ाइल का नाम.

शाखाओं के बीच अंतर

शाखा का लॉग देखते समय आपकी कुछ विशिष्ट आवश्यकताएं हो सकती हैं। उदाहरण के लिए, संपूर्ण इतिहास देखने के बजाय, आप केवल यह देखना चाहेंगे कि उस विशिष्ट शाखा में क्या परिवर्तन हुआ है। गिट लॉग के माध्यम से मदद कर सकता है रेफरी1..रेफरी2 वाक्य - विन्यास। तीन अलग-अलग दृष्टिकोण हैं जिनका आप उपयोग कर सकते हैं:

  1. देखें जो मुख्य रूप से हैं, लेकिन शाखा में नहीं हैं:
    गिट लॉग --ऑनलाइन मूल/शाखा..मूल/मुख्य
  2. देखें कि शाखा में हैं, लेकिन मुख्य नहीं हैं:
    गिट लॉग --ऑनलाइन मूल/मुख्य..मूल/डाली
  3. देखें जो केवल शाखा या मुख्य में मौजूद हैं:
    गिट लॉग --ऑनलाइन मूल/शाखा...मूल/मुख्य

जैसे आप branches का उपयोग करके शाखाओं के बीच इतिहास देख सकते हैं रेफरी1..रेफरी2 सिंटैक्स, आप उसी तरह टैग के बीच इतिहास भी देख सकते हैं। आखिरकार, टैग और शाखाएं दोनों प्रकार के संदर्भ हैं।

git log --abbrev-commit --pretty=format:'%h %ar %s' v2.32.0-rc3..v2.32.0

यदि आप किसी बड़े प्रोजेक्ट के लिए रिलीज़ नोट तैयार कर रहे हैं, गिट शॉर्टलॉग कॉल का आपका पहला पोर्ट होना चाहिए। यह उनके साथ प्रतिबद्ध विषयों वाले लेखकों की एक सूची तैयार करता है। आप इसे git log के समान इतिहास को सीमित करने के लिए एक संदर्भ श्रेणी पास कर सकते हैं:

गिट शॉर्टलॉग v2.32.0-rc3..v2.32.0

गिट शो कमांड से भी अधिक बहुमुखी है गिट लॉग. यह प्रतिबद्ध इतिहास से परे टैग और अन्य प्रकार की गिट वस्तुओं के साथ काम कर सकता है। यह कई विकल्पों के साथ साझा करता है गिट लॉग, लेकिन आपको वास्तव में इसकी आवश्यकता केवल तभी होगी जब आपको निचले स्तर के विवरणों में खुदाई करने की आवश्यकता हो।

गिट लॉग के साथ अतीत की समीक्षा करें

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

ईमेल
सोशल कोडिंग ट्रेंड में शामिल हों और GitHub रिपॉजिटरी में योगदान करें

अपनी कोडिंग मांसपेशियों का व्यायाम करना चाहते हैं और ओपन सोर्स प्रोजेक्ट्स में मदद करना चाहते हैं? यहाँ GitHub में योगदान करने का तरीका बताया गया है।

आगे पढ़िए

संबंधित विषय
  • प्रोग्रामिंग
  • GitHub
  • कोडिंग टिप्स
लेखक के बारे में
बॉबी जैक (54 लेख प्रकाशित)

बॉबी एक प्रौद्योगिकी उत्साही हैं जिन्होंने दो दशकों तक एक सॉफ्टवेयर डेवलपर के रूप में काम किया। उन्हें गेमिंग का शौक है, स्विच प्लेयर मैगज़ीन में समीक्षा संपादक के रूप में काम कर रहे हैं, और ऑनलाइन प्रकाशन और वेब विकास के सभी पहलुओं में डूबे हुए हैं।

बॉबी जैक. की अन्य फ़िल्में-टीवी शो

हमारे न्यूज़लेटर की सदस्यता

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

एक और क़दम…!

कृपया अपने ईमेल पते की पुष्टि उस ईमेल में करें जो हमने अभी आपको भेजी है।

.