"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्या आप सचमुच गिट को जानते हैं?

क्या आप सचमुच गिट को जानते हैं?

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

Do you really know Git?

इस ब्लॉग में छवियां स्कॉट चाकोन, बेन स्ट्राब द्वारा "प्रो गिट" से ली गई हैं

इस ब्लॉग में, आपको गिट के भीतर प्रोग्रामिंग में आपके द्वारा उपयोग की जाने वाली कुछ रोजमर्रा की सुविधाओं के बारे में सभी प्रकार के स्पष्ट तथ्य पढ़ने को मिलेंगे!

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

आइए कुछ अच्छे तथ्यों के बारे में जानें!


1 - लघु स्थिति

यदि आपने काफी समय से Git का उपयोग किया है, तो आपको git status के बारे में पता होना चाहिए। हालाँकि, क्या आप जानते हैं कि अधिक पठनीय और न्यूनतम स्थिति आउटपुट प्राप्त करने का एक विकल्प है?

संक्षिप्त स्थिति ध्वज, -s का उपयोग करके, आपको एक अधिक कॉम्पैक्ट प्रारूप मिलता है।

$ git status -s
 M README
MM Rakefile
A  lib/git.rb
M  lib/simplegit.rb
?? LICENSE.txt

आप देखेंगे कि आउटपुट के बाएं भाग पर 2 कॉलम हैं। बायां कॉलम स्टेजिंग क्षेत्र की स्थिति को दर्शाता है, जबकि दायां कॉलम वर्किंग ट्री की स्थिति को दर्शाता है। क्रियाओं का क्रम कालानुक्रमिक रूप से बाएँ से दाएँ भी दर्शाया जाता है।

आइए उपरोक्त आउटपुट की व्याख्या करें:

  • " एम" - संशोधित लेकिन मंचित नहीं
  • "एमएम" - मंचन किया गया और फिर दोबारा संशोधित किया गया। इस प्रकार, अगली प्रतिबद्धता के लिए एक अतिरिक्त चरण की आवश्यकता है।
  • "ए " - एक नई फ़ाइल बनाई गई और चरणबद्ध की गई
  • "एम" - मंचन
  • "??" - एक नई फ़ाइल बनाई गई थी लेकिन चरणबद्ध नहीं थी (अनट्रैक की गई)

2 - मंचन क्षेत्र को छोड़ना

क्या होगा यदि आप अपनी ट्रैक की गई फ़ाइलों को स्टेज करना चाहते हैं और सभी को एक कमांड में कमिट करना चाहते हैं?

आप git प्रतिबद्ध -a -m "message" का उपयोग करके ऐसा कर सकते हैं।

ध्यान दें कि अनट्रैक की गई फ़ाइलें (नई बनाई गई फ़ाइलें) दुर्भाग्य से इस जादुई कमांड के साथ चरणबद्ध नहीं होंगी।


3 - अपना प्रतिबद्ध इतिहास देखें

अपनी रिपॉजिटरी में किए गए कमिट को उल्टे कालानुक्रमिक क्रम में सूचीबद्ध करने के लिए git log का उपयोग करें (सबसे हालिया कमिट पहले दिखाई देते हैं)।

ऐसे कई विकल्प हैं जो आपको आउटपुट को अनुकूलित करने की अनुमति देते हैं। आइए कुछ उपयोगी बातों पर गौर करें:

  • -{number} प्रदर्शित लॉग प्रविष्टियों की संख्या को सीमित करता है (उदाहरण के लिए, git log -2 अंतिम दो प्रविष्टियां दिखाता है)
  • --स्टेट प्रत्येक कमिट के लिए # फ़ाइलों या # सम्मिलन/हटाए जाने जैसे संक्षिप्त आँकड़े दिखाता है
  • --pretty=oneline प्रत्येक कमिट को एक लाइन पर प्रिंट करता है
  • --ग्राफ आपकी शाखा और मर्ज इतिहास को दर्शाने वाला एक ASCII ग्राफ जोड़ता है

4 - Git रिस्टोर का उपयोग करके चीजों को पूर्ववत करना

जब आप किसी फ़ाइल को अनस्टेज करना चाहते हैं, तो git रीसेट HEAD का उपयोग करें। जब आप किसी संशोधित फ़ाइल को अनमॉडिफाई करना चाहते हैं, तो git checkout -- {file} का उपयोग करें।

अब दोनों करने का एक आसान तरीका है! Git संस्करण 2.23.0 ने git restart पेश किया, जो फ़ाइलों को अनस्टेज और अनमॉडिफाई करने के लिए 2-इन-1 क्षमता लाता है।

  • git पुनर्स्थापना {फ़ाइल} - एक संशोधित फ़ाइल को असंशोधित करें
  • गिट रिस्टोर --स्टेज्ड {फ़ाइल} - एक स्टेज्ड फ़ाइल को अनस्टेज करें

5 - गिट फ़ेच बनाम गिट पुल

सबसे अधिक संभावना है, आपने प्रोग्रामर के रूप में कम से कम एक बार git पुल का उपयोग किया है। इसके अतिरिक्त, आपने संभवतः git fetch के बारे में सुना होगा लेकिन वास्तव में इसका उपयोग करने की आवश्यकता कभी नहीं पड़ी। खैर, आइए इस बारे में बात करें कि यह वास्तव में क्या करता है और यह गिट पुल से कैसे अलग है।

आप फ़ेच को एक खिंचाव के भीतर क्या होता है उसका पहला चरण मान सकते हैं।

एक झटके में, हम रिमोट रिपॉजिटरी से सारा डेटा डाउनलोड करते हैं और इसे स्थानीय रिपॉजिटरी में स्थानांतरित कर देते हैं। फ़ेच यही करता है.

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

इस प्रकार, एक पुल सभी को एक साथ लाता और विलीन करता है, जबकि एक फ़ेच केवल पहला चरण करता है।


6 - गिट उपनाम

अगर मैं आपसे कहूं कि आपके गिट कमांड को अनुकूलन योग्य बनाने का कोई तरीका है तो क्या होगा? git config के माध्यम से, आप यह कर सकते हैं!

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

$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status

अब, git प्रतिबद्ध टाइप करने के बजाय, आपको बस git ci टाइप करना होगा।

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

$ git config --global alias.unstage 'reset HEAD --'
# the double dash serves as an option separator. 
# It tells Git to treat anything after it as a filename

उपरोक्त आदेश निम्नलिखित आदेशों को समकक्ष बनाता है:

  • git अनस्टेज फ़ाइलA
  • गिट रीसेट हेड -- फाइलए

अपनी नवीनतम प्रतिबद्धता देखने के लिए अंतिम कमांड जोड़ना भी आम है:

$ git config --global alias.last 'log -1 HEAD'

इस ब्लॉग के लिए बस इतना ही! मुझे आशा है कि आपने Git के साथ अपने अगले प्रोजेक्ट के लिए कुछ साफ-सुथरी तरकीबें सीखी हैं जो आपके वर्कफ़्लो की गुणवत्ता में सुधार करेंगी। पढ़ने के लिए धन्यवाद!

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/jihoonj/do-you-really-know-git-456d?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3