Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

मास्टर गिट लॉग:प्रतिबद्धताओं को देखने और फ़िल्टर करने के लिए एक व्यापक मार्गदर्शिका

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

<पी> लेकिन आप वास्तव में उस इतिहास को कैसे देखते हैं जो आपका Git रिपॉजिटरी बनाता है? यहीं पर git लॉग कमांड मददगार हो सकता है।

<पी> यह ट्यूटोरियल उदाहरणों के साथ, git लॉग कमांड की मूल बातें और आप Git रिपॉजिटरी का निरीक्षण करने के लिए इसका उपयोग कैसे कर सकते हैं, इस पर चर्चा करेगा।

गिट लॉग कमांड

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

<पी> जबकि git स्टेटस कमांड वर्तमान कार्यशील निर्देशिका पर केंद्रित है, git लॉग आपको अपने रिपॉजिटरी का इतिहास देखने की अनुमति देता है।

गिट लॉग कमांड उदाहरण

<पी> आइए एक उदाहरण के माध्यम से देखें कि गिट लॉग कमांड कैसे काम करता है। हम "डेमो-रिपॉजिटरी" नामक एक रिपॉजिटरी पर काम कर रहे हैं। अब हम उन सभी प्रतिबद्धताओं की एक सूची देखना चाहते हैं जिन्हें हमने अपनी रिपॉजिटरी में भेजा है। ऐसा करने के लिए, हम इस कमांड का उपयोग कर सकते हैं:

<पी> Git लॉग कमांड रिपॉजिटरी में किए गए सभी कमिट्स की एक सूची लौटाता है। इस कमांड द्वारा लौटाए गए एकल कमिट का एक उदाहरण यहां दिया गया है:

commit 43433c674e3d6c86a889fad222dae179785893cf (HEAD -> master, origin/master, origin/HEAD)
Author: James Gallagher <37276661+jamesgallagher432@users.noreply.github.com>
Date: Tue Apr 7 13:09:58 2020 +0100
 Update index.html
<पी> आइए इस आउटपुट पर चरण-दर-चरण चर्चा करें। गिट लॉग कमांड द्वारा लौटाई गई प्रत्येक प्रविष्टि में शामिल हैं:

  • कमिट के लिए सिक्योर हैश एल्गोरिथम (SHA) हैश, जिसका उपयोग रिपॉजिटरी में प्रत्येक कमिट को विशिष्ट रूप से पहचानने के लिए किया जाता है। हमारे उपरोक्त उदाहरण में, यह "43433c674e3d6c86a889fad222dae179785893cf" था।
  • कमिट के लेखक। हमारे उपरोक्त उदाहरण में, यह जेम्स गैलाघर था। लेखक का ईमेल भी निर्दिष्ट है।
  • वह तारीख जब प्रतिबद्धता को आगे बढ़ाया गया। हमारे उपरोक्त उदाहरण में, यह मंगलवार, 7 अप्रैल था।
  • कमिट से जुड़ा संदेश। ऊपर लौटाया गया प्रतिबद्ध संदेश "अपडेट इंडेक्स.एचटीएमएल" था।
<पी> यह सारा डेटा हमें हमारे भंडार में मौजूद प्रतिबद्धताओं के बारे में उपयोगी जानकारी देता है।

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

<पी> डिफ़ॉल्ट रूप से, git लॉग इस संरचना का उपयोग करके रिपॉजिटरी में किए गए सभी कमिट्स की एक सूची लौटाता है। जैसा कि आप कल्पना कर सकते हैं, यदि पढ़ने के लिए बहुत सारे कमिट हैं तो आपके git लॉग स्टेटमेंट को पढ़ना जल्दी से मुश्किल हो सकता है।

<पी> गिट लॉग कुछ झंडों के साथ आता है जिनका उपयोग आप अपने लॉग को फ़िल्टर करने के लिए कर सकते हैं। ये हैं:

सबसे हाल के अनुसार फ़िल्टर करें

<पी> यदि आप एक विशिष्ट संख्या में कमिट वापस करना चाहते हैं, तो आप -n ध्वज का उपयोग करके ऐसा कर सकते हैं। इस ध्वज के क्रियाशील होने का एक उदाहरण यहां दिया गया है:

<पी> यह कमांड रिपॉजिटरी में की गई तीन सबसे हालिया प्रतिबद्धताओं की एक सूची लौटाता है।

लेखक या कमिटर द्वारा फ़िल्टर करें

<पी> आप उस व्यक्ति द्वारा गिट लॉग द्वारा लौटाए गए कमिट को भी फ़िल्टर कर सकते हैं जिसने परिवर्तन लिखे या प्रतिबद्ध किए हैं। मान लीजिए हम "जॉन स्मिथ" द्वारा किए गए प्रतिबद्धताओं की एक सूची देखना चाहते हैं। हम इन आदेशों का उपयोग करके ऐसा कर सकते हैं:

git log --author="John Smith"
git log --committer="John smith"
<पी> लेखक फ़्लैग परिणामों को उन प्रतिबद्धताओं तक सीमित करता है जिनके परिवर्तन जॉन स्मिथ द्वारा किए गए थे। कमिटर फ़्लैग परिणामों को उन कमिटों तक सीमित करता है जो वास्तव में उस व्यक्ति द्वारा किए गए थे।

<पी> आप पाएंगे कि, अधिकांश मामलों में, लेखक और कमिटर एक ही व्यक्ति हैं। बड़ी परियोजनाओं में, किसी कमिट का लेखक आवश्यक रूप से वह नहीं हो सकता जो उसे रिपॉजिटरी में धकेलता है। यही कारण है कि ये दो झंडे मौजूद हैं।

तिथि के अनुसार फ़िल्टर करें

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

<पी> मान लीजिए कि हम 2019-3-2 के बाद की प्रतिबद्धताओं की एक सूची पुनः प्राप्त करना चाहते हैं। हम इस कमांड का उपयोग करके ऐसा कर सकते हैं:

git log --after="2019-3-2"
<पी> हमने अपनी प्रतिबद्धताओं को फ़िल्टर करने के लिए एक तिथि निर्दिष्ट की है। इसी तरह, यदि हम कल से पहले की प्रतिबद्धताओं की सूची पुनः प्राप्त करना चाहते हैं, तो हम इस आदेश का उपयोग करके ऐसा कर सकते हैं:

git log --before="yesterday"
<पी> हमने एक सापेक्ष मान ("कल") निर्दिष्ट किया है।

<पी> अब, मान लीजिए कि हम उन कमिट्स की सूची पुनः प्राप्त करना चाहते हैं जो 2019-3-2 के बाद और 2019-3-19 से पहले प्रकाशित हुए थे। हम इस कमांड का उपयोग करके ऐसा कर सकते हैं:

git log --after="2019-3-2" --before="2019-3-19"

फ़ाइल द्वारा फ़िल्टर करें

<पी> जब आप गिट लॉग कमांड का उपयोग कर रहे हैं, तो आप केवल उन कमिटों की सूची देखना चाहेंगे जिन्होंने किसी विशेष फ़ाइल को प्रभावित किया है। ऐसा करने के लिए, आप वह फ़ाइल निर्दिष्ट कर सकते हैं जिसके परिवर्तन आप देखना चाहते हैं।

<पी> मान लीजिए हम अपने कोड में “main.py” फ़ाइल में किए गए बदलाव देखना चाहते हैं। हम निम्नलिखित कमांड का उपयोग करके ऐसा कर सकते हैं:

<पी> — स्टेटमेंट गिट लॉग कमांड को निर्देश देता है कि हमारे द्वारा निर्दिष्ट तर्क फ़ाइल पथ हैं न कि शाखाओं के नाम।

<पी> हमारे कमांड में, हमने केवल एक फ़ाइल निर्दिष्ट की है जिसका उपयोग हम गिट लॉग कमांड की प्रतिक्रिया को फ़िल्टर करने के लिए करना चाहते थे। लेकिन, यदि आप चाहें, तो आप एकाधिक फ़ाइलें निर्दिष्ट कर सकते हैं।

सामग्री के अनुसार फ़िल्टर करें

<पी> आप उन कमिटों को भी खोज सकते हैं जिन्होंने कोड की एक विशेष पंक्ति हटा दी है या जोड़ दी है।

<पी> मास्टर गिट लॉग:प्रतिबद्धताओं को देखने और फ़िल्टर करने के लिए एक व्यापक मार्गदर्शिका

<पी> "कैरियर कर्म ने मेरे जीवन में तब प्रवेश किया जब मुझे इसकी सबसे अधिक आवश्यकता थी और बूटकैंप ने तुरंत मेरी मदद की। स्नातक होने के दो महीने बाद, मुझे अपना सपनों का काम मिला जो जीवन में मेरे मूल्यों और लक्ष्यों के अनुरूप था!"

<पी> वीनस, रॉकबॉट में सॉफ्टवेयर इंजीनियर

<पी> अपना बूटकैंप मैच ढूंढें

<पी> मान लीजिए कि हम उन सभी कमिटों को खोजना चाहते हैं जिन्होंने हमारे कोड में "# परिचय" शब्द जोड़ा है। हम इस कमांड का उपयोग करके ऐसा कर सकते हैं:

git log -S"# Introduction"
<पी> -S ध्वज का उपयोग यह निर्दिष्ट करने के लिए किया जाता है कि हम अपनी प्रतिबद्धताओं की सूची में कौन सा परिवर्तन देखना चाहते हैं। ध्यान दें कि -S ध्वज के बीच कोई स्थान या बराबर का चिह्न नहीं है। साथ ही, वे उद्धरण चिह्न जिनका उपयोग हम उस प्रतिबद्धता की सामग्री को निर्दिष्ट करने के लिए करते हैं जिसकी हम तलाश कर रहे हैं।

रेंज के अनुसार फ़िल्टर करें

<पी> आप गिट लॉग में कमिट की एक श्रृंखला को पास करने के लिए तब से और जब तक पैरामीटर का उपयोग कर सकते हैं। इन मापदंडों के लिए सिंटैक्स इस प्रकार है:

<पी> मान लीजिए कि हम कमिट b72beb5 को पुश किए जाने के बाद से और कमिट b53b22d को पुश किए जाने तक किए गए कमिट्स की एक सूची पुनः प्राप्त करना चाहते हैं। हम इस कमांड का उपयोग करके ऐसा कर सकते हैं:

<पी> यह कमांड b72beb5 और b53b22d कमिट के बीच सभी कमिट की एक सूची लौटाता है।

संदेश द्वारा फ़िल्टर करें

<पी> -ग्रेप ध्वज आपको किसी विशेष कमिट से जुड़े कमिट संदेश द्वारा गिट लॉग द्वारा लौटाए गए कमिट को फ़िल्टर करने की अनुमति देता है।

<पी> उदाहरण के लिए, मान लीजिए कि हम उन सभी कमिटों की एक सूची लौटाना चाहते हैं जिनका नाम "feat:" से शुरू होता है। हम इस कोड का उपयोग करके ऐसा कर सकते हैं:

<पी> यह कमांड उन सभी कमिट्स की सूची लौटाता है जिनके संदेश "feat:" से शुरू होते हैं।

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

<पी> पिछले अनुभाग में, हमने git log कमांड से पूर्ण आउटपुट के साथ काम किया। इस आउटपुट में हमारे कमिट के लिए SHA, कमिट लेखक, कमिट को पुश करने की तारीख और कमिट संदेश शामिल था।

<पी> हालाँकि यह सारी जानकारी उपयोगी है, फिर भी अक्सर ऐसे मौके आते हैं जब आपको किसी कमिट के बारे में केवल विशिष्ट डेटा पुनर्प्राप्त करने की आवश्यकता होती है। सौभाग्य से, git लॉग कमांड कुछ फ़्लैग्स के साथ आता है जिनका उपयोग आप कमांड के आउटपुट को प्रारूपित करने के लिए कर सकते हैं।

संक्षिप्त लॉग लौटाएं

<पी> डिफ़ॉल्ट रूप से, git लॉग स्टेटमेंट रिपॉजिटरी में किए गए प्रत्येक कमिट के लिए पूर्ण लॉग प्रविष्टि लौटाता है। आप -ऑनलाइन ध्वज का उपयोग करके प्रतिबद्ध आईडी और उनके संबंधित प्रतिबद्ध संदेशों की एक सूची पुनः प्राप्त कर सकते हैं।

<पी> -ऑनलाइन फ़्लैग के लिए सिंटैक्स यहां दिया गया है:

<पी> जब हमारे रिपॉजिटरी में पहले से चलाया जाता है, तो यह कमांड वापस आता है:

43433c6 (HEAD -> master, origin/master, origin/HEAD) Update index.html
a7d8dc2 docs: Update README.md
b53b22d feat: Update website
3b16026 feat: Launch new homepage
b72beb5 first commit
<पी> हम कमिट आईडी और कमिट से जुड़े संदेशों की पहली पंक्ति देख सकते हैं। किसी कमिट से जुड़े सभी मेटाडेटा की तुलना में इसे पढ़ना आसान है, अन्यथा गिट लॉग कमांड वापस आ जाएगा।

<पी> प्रत्येक प्रविष्टि एक ही पंक्ति में दिखाई देती है। यह git लॉग वन लाइन तकनीक उपयोगी है क्योंकि यह बहुत अधिक जानकारी प्रदर्शित किए बिना कमिट दिखाती है।

आउटपुट को सजाना

<पी> -डेकोरेट ध्वज आपको उन सभी संदर्भों (यानी शाखाओं और टैग) को देखने की अनुमति देता है जो किसी विशेष प्रतिबद्धता की ओर इशारा करते हैं। इस ध्वज का सिंटैक्स इस प्रकार है:

<पी> यह आदेश लौटाता है:

43433c6 (HEAD -> master, origin/master, origin/HEAD) Update index.html
a7d8dc2 docs: Update README.md
b53b22d feat: Update website
3b16026 (tag: v1) feat: Launch new homepage
b72beb5 first commit
<पी> हमारी सूची में चौथे कमिट में अब इसके टैग का नाम निर्दिष्ट है। ऐसा इसलिए है क्योंकि -डेकोरेट ध्वज हमारे प्रतिबद्ध इतिहास में प्रत्येक प्रतिबद्धता से जुड़े संदर्भों को प्रकट करता है।

एक अंतर लौटाना

<पी> -स्टेट ध्वज आपको प्रत्येक कमिट में रिपॉजिटरी से जोड़े गए और हटाए गए कोड की पंक्तियों की संख्या प्रदर्शित करने की अनुमति देता है। यहां कार्रवाई में गिट लॉग-स्टेट कमांड का एक उदाहरण दिया गया है:

Author: James Gallagher <james@users.noreply.github.com>
Date: Mon Apr 6 09:11:46 2020 +0100
 feat: Update website
 index.html | 1 +
 index.js | 0
 2 files changed, 1 insertion(+)
<पी> प्लस चिह्न (+) सम्मिलन को दर्शाते हैं, और, यदि कोई हों, तो माइनस चिह्न (-) विलोपन को इंगित करेंगे। यह डेटा आपको रिपॉजिटरी में किए गए समग्र परिवर्तनों के बारे में अधिक जानने की अनुमति देता है।

<पी> यदि आप रिपॉजिटरी में किए गए सटीक परिवर्तनों को देखना चाहते हैं, तो आप -p ध्वज का उपयोग कर सकते हैं। यह कमिट में किए गए परिवर्तनों को दर्शाने वाला अधिक व्यापक अंतर लौटाता है।

<पी> हमारे उदाहरण भंडार पर चलने पर, git log -p कमांड से लौटाई गई एक प्रविष्टि यहां दी गई है:

Author: James Gallagher <37276661+jamesgallagher432@users.noreply.github.com>
Date: Tue Apr 7 13:09:58 2020 +0100
 Update index.html
diff --git a/index.html b/index.html
index f45673f..2d2701d 100644
--- a/index.html
+++ b/index.html
@@ -1,2 +1,3 @@
-This is a file.
-Changes have been made.
+<body>
+ <p>This is a website.</p>
+</body>
<पी> यह आउटपुट हमें कमिट का विवरण और कमिट में किए गए प्रत्येक परिवर्तन का विस्तृत विवरण दिखाता है। हम देख सकते हैं कि कब लोगों ने हमारी रिपॉजिटरी में फ़ाइलों से सामग्री जोड़ी या हटाई है।

<पी> हालाँकि यह डेटा उपयोगी है, लेकिन यदि प्रदर्शित करने के लिए कई कमिट हैं तो इस आउटपुट को पढ़ना जल्दी से मुश्किल हो सकता है। हो सकता है कि आप इस आलेख में चर्चा किए गए अन्य झंडों में से एक या अधिक का उपयोग करना चाहें। इससे यह सुनिश्चित करने में मदद मिलेगी कि इस समिति द्वारा लौटाई गई जानकारी व्यापक और पढ़ने में आसान है।

<पी> आप हमारे git diff कमांड गाइड में Git diffs के बारे में अधिक पढ़ सकते हैं।

गिट शॉर्टलॉग कमांड

<पी> गिट शॉर्टलॉग कमांड गिट लॉग का सारांश प्रदान करता है। गिट शॉर्टलॉग कमांड का आउटपुट लेखक द्वारा समूहीकृत किया गया है जिसका अर्थ है कि आप आसानी से देख सकते हैं कि रिपॉजिटरी में किसने क्या बदलाव किए हैं।

<पी> आइए पहले से हमारे रिपॉजिटरी पर git शॉर्टलॉग कमांड चलाएँ:

<पी> हमारा आदेश वापस आता है:

James Gallagher (5):
 first commit
 feat: Launch new homepage
 feat: Update website
 docs: Update README.md
 Update index.html
<पी> जेम्स एकमात्र व्यक्ति हैं जिन्होंने इस भंडार में योगदान दिया है, और उन्होंने पाँच प्रतिबद्धताएँ बनाई हैं। लेकिन, यदि अन्य योगदानकर्ता होते, तो उनके योगदान को भंडार में उनके द्वारा किए गए योगदान की कुल संख्या के साथ यहां सूचीबद्ध किया जाता।

निष्कर्ष

<पी> Git लॉग कमांड आपको दिखाता है कि रिपॉजिटरी में क्या परिवर्तन, किसके द्वारा और कब किए गए थे। आप केवल वही जानकारी दिखाने के लिए गिट लॉग के आउटपुट को फ़िल्टर कर सकते हैं जो आपको जानना आवश्यक है।

<पी> Git लॉग कमांड दो प्रकार के फ़्लैग के साथ आता है। कुछ झंडे आपको लॉग के आउटपुट को प्रारूपित करने में मदद करते हैं। अन्य झंडे जो आपको कमांड द्वारा लौटाए गए कमिट्स को फ़िल्टर करने में मदद कर सकते हैं।

<पी> इस ट्यूटोरियल में उदाहरणों के संदर्भ में चर्चा की गई है कि गिट लॉग का उपयोग कैसे करें और कमांड के साथ उपयोग किए जाने वाले सबसे आम झंडे। Git के साथ काम करते समय git लॉग कमांड आपके शस्त्रागार में एक महत्वपूर्ण उपकरण है। एक बार जब आप इस कमांड का प्रभावी ढंग से उपयोग करना सीख जाते हैं, तो आप Git रिपॉजिटरी का निरीक्षण करने में माहिर हो जाएंगे!

<पी> Git के बारे में अधिक जानने के लिए, हमारी Git कैसे सीखें मार्गदर्शिका पढ़ें।


  1. C++ में दिए गए मान के साथ पत्ते हटाएं C++ में दिए गए मान के साथ पत्ते हटाएं

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

  1. सी ++ में एक अप्रत्यक्ष ग्राफ में किनारों की संख्या की गणना करें सी ++ में एक अप्रत्यक्ष ग्राफ में किनारों की संख्या की गणना करें

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

  1. पायथन में कैलेंडर कार्य - (महीने की सीमा (), prcal (), कार्यदिवस ()?) पायथन में कैलेंडर कार्य - (महीने की सीमा (), prcal (), कार्यदिवस ()?)

    हम कैलेंडर . के विभिन्न तरीकों का पता लगाने जा रहे हैं इस ट्यूटोरियल में मॉड्यूल। आइए एक-एक करके देखते हैं। calendar.monthrange(वर्ष, माह) विधि calendar.monthrange(वर्ष, माह) सप्ताह के दिनों की संख्या और दिए गए महीने के दिनों की संख्या शुरू होती है। यह एक टपल में दो मान देता है। आइए एक उदाहरण देखें।