अपनी खुद की कहानियाँ गिट के साथ लिखना

सभी को नमस्कार 🙂 आदेश सूची के ग्रंथों के साथ जारी रखने से पहले, मैं उन सभी में से प्रत्येक को धन्यवाद देता हूं जो एक पैच भेजते हैं और प्रत्येक उपयोगकर्ता को धन्यवाद देते हुए 2.16 की शुरूआत का जश्न मनाना चाहते हैं, कुल मिलाकर हमारे पास अपडेट और सुधार के बीच 4000 लाइनें थीं, जो मेरे पहले संस्करण की बहुत अच्छी तरह से बात नहीं करता है, लेकिन यह आपकी दया की बात करता है well धन्यवाद! अब, मैं आपको एक छोटा सा रहस्य बताऊंगा, अब तक ऐसा समय नहीं आया है जब मैं एक लेख लिखने के लिए नहीं बैठा हूं और इसके बारे में बहुत सोचा है, आमतौर पर मैं सिर्फ एक पंक्ति में लिखता हूं, और फिर अच्छी छिपकली लेता है मेरी टाइपिंग की गलतियों को ठीक करने की दया 🙂 तो उसके लिए भी धन्यवाद।

यह सबसे अच्छा नहीं है जब हम लेख लिखने के बारे में बात करते हैं, माना जाता है कि इसका एक उद्देश्य होना चाहिए और एक साथ एक संरचना होनी चाहिए, और छोटे बिंदुओं और समीक्षाओं और आदि आदि को चिह्नित करें ... अब, यह न केवल सामान्य रूप से ब्लॉग पर लागू होता है, बल्कि आवश्यक है एक सॉफ्टवेयर में जो अच्छा होने का दिखावा करता है task इस कार्य के लिए, और कुछ सालों पहले कर्नेल के विकास में उपयोग किए गए संस्करण नियंत्रण सॉफ़्टवेयर के साथ कुछ समस्याओं के बाद, यह पैदा हुआ था git 🙂

कहाँ से सीखें? git?

Git के आस-पास दस्तावेज़ीकरण की मात्रा चौंका देने वाली है, भले ही हम स्थापना के साथ आए मैन पेजों को ही ले लें, हमारे पास पढ़ने की एक विशाल राशि होगी। मैं व्यक्तिगत रूप से ढूंढता हूं git book काफी अच्छी तरह से डिज़ाइन किया गया, यहां तक ​​कि मैंने खंड 7 के कुछ खंडों का अनुवाद किया है, मैं अभी भी कुछ याद कर रहा हूं, लेकिन मुझे समय दें I शायद इस महीने में मैं अनुवाद कर सकता हूं कि उस खंड से क्या बचा है।

Git क्या करता है?

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

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

छोटी गणनात्मक परियोजना

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

खुद का। क्रिस्टोफर डियाज़ रिवरोस

हमने लाइसेंस जैसी कुछ साधारण चीजों को जोड़ा है (यदि आप अपने काम की रक्षा करना चाहते हैं तो बहुत महत्वपूर्ण है, मेरे मामले में, उन्हें परिणाम साझा करने के लिए बाध्य करें यदि वे इसे आधार के रूप में उपयोग करना चाहते हैं: P)

अब चलो हमारे प्रिय टर्मिनल, git clone वह कमांड है जो रिपॉजिटरी को डाउनलोड करने के लिए जिम्मेदार है url असाइन किया गया और हमारे कंप्यूटर पर एक स्थानीय प्रतिलिपि बनाएँ।

खुद का। क्रिस्टोफर डियाज़ रिवरोस

अब हम जांच करते हैं git log हमारी परियोजना के इतिहास में क्या हुआ है:

यहाँ हम विभिन्न रंगों में बहुत सारी जानकारी रखते हैं to आइए इसे समझाने की कोशिश करते हैं:

पहली पीली लाइन "कमिट बारकोड" है प्रत्येक कमेटी की अपनी विशिष्ट पहचानकर्ता होती है, जिसके साथ आप बहुत सारी चीजें कर सकते हैं, लेकिन हम इसे बाद के लिए बचाएंगे। अब हमारे पास है HEAD सेलेस्टे और master हरा। ये "संकेत" हैं उनका कार्य हमारे इतिहास के वर्तमान स्थान को इंगित करना है (HEAD) और शाखा हम अपने कंप्यूटर पर काम कर रहे हैं (master).

origin/master इंटरनेट का समकक्ष है, origin वह डिफ़ॉल्ट नाम है जिसे हमारे लिए असाइन किया गया है URL, और master वह शाखा है जिसमें आप काम कर रहे हैं ... इसे सरल रखने के लिए, जिनके पास ए है / वे हैं जो हमारी टीम में नहीं हैं, लेकिन इंटरनेट पर जो कुछ भी है उसका संदर्भ है।

फिर हमारे पास लेखक, तिथि और समय और प्रतिबद्ध सारांश है। यह उस समय की एक छोटी समीक्षा है जो इतिहास में उस बिंदु पर हुई है, कई परियोजनाओं में बहुत महत्वपूर्ण है और निंदा की गई बहुत सारी जानकारी है। आइए कमांड के साथ प्रतिबद्ध में क्या हुआ, इस पर करीब से नज़र डालते हैं git show <código-de-commit>

खुद का। क्रिस्टोफर डियाज़ रिवरोस

गिट शो कमांड हमें इस स्क्रीन को पैच फॉर्मेट में ले जाता है, जहाँ आप देख सकते हैं कि इतिहास में उस समय क्या जोड़ा गया है और क्या हटाया गया है (अगर कुछ हटाया गया था), तो अब तक यह केवल हमें दिखाता है कि रिकॉर्ड .gitignore,README.mdLICENSE.

अब व्यापार के लिए नीचे आते हैं, एक फाइल लिखते हैं create हम अपने इतिहास में पहला मील का पत्थर बनाएंगे business:

खुद का। क्रिस्टोफर डियाज़ रिवरोस

संक्षेप में, हम एक ऐसा प्रोग्राम बनाने जा रहे हैं जो हमें निष्पादित करते समय तर्क की संख्या दिखाता है, सरल going

खुद का। क्रिस्टोफर डियाज़ रिवरोस

यह आसान था was अब निम्नलिखित उपयोगी कमांड देखते हैं: git status

खुद का। क्रिस्टोफर डियाज़ रिवरोस

किसी प्रकार की हृदय की आत्मा ने इसका अनुसरण करना आसान बनाने के लिए git का अनुवाद किया है, यहाँ हमारे पास बहुत सी उपयोगी जानकारी है, हम जानते हैं कि हम मास्टर शाखा में हैं, जिसे हम अपडेट करते हैं origin/master(गीथूब शाखा), हमारे पास फाइलें नहीं हैं! और उन्हें जोड़ने के लिए हमें इसका उपयोग करना होगा git add, चलो प्रयास करें 🙂

खुद का। क्रिस्टोफर डियाज़ रिवरोस

अब हमारे पास एक नया ग्रीन स्पेस है, जिसमें हमने कार्य क्षेत्र में जो फ़ाइल जोड़ी है वह प्रदर्शित होती है। इस स्थान पर हम एक बदलाव करने के लिए अपने बदलावों को समूहीकृत कर सकते हैं, इस प्रतिबद्धता में हमारी परियोजना के इतिहास में एक मील का पत्थर शामिल है, हम प्रतिबद्ध बनाने जा रहे हैं group git commit

खुद का। क्रिस्टोफर डियाज़ रिवरोस

संक्षेप में समझाया गया है, पीली लाइन हमारी प्रतिबद्धता का शीर्षक है, मैं केवल एक दृश्य संदर्भ के लिए main.c लिखता हूं। काला पाठ पिछली प्रतिबद्धताओं के बाद से अब तक किए गए परिवर्तनों की व्याख्या है। अब हम फ़ाइल को सहेजते हैं और हम रजिस्ट्री में सहेजे गए अपने कमिट को देखेंगे।

खुद का। क्रिस्टोफर डियाज़ रिवरोस

अब हम अपने प्रोजेक्ट के इतिहास को देखने जा रहे हैं git log

खुद का। क्रिस्टोफर डियाज़ रिवरोस

लॉग में फिर से, अब हम देख सकते हैं कि हरी और लाल रेखाएं अलग-अलग हैं, यह इसलिए है क्योंकि हमारे कंप्यूटर पर, हम इंटरनेट पर संग्रहीत उन लोगों के ऊपर एक प्रतिबद्ध हैं are हम काम जारी रखने जा रहे हैं, मान लीजिए कि अब मैं चाहता हूं कि उपयोगकर्ता द्वारा कार्यक्रम में एक से अधिक तर्क दिए जाने पर संदेश दिखाएं (जो कैलकुलेटर को भ्रमित कर देगा)

जैसा कि हम देख सकते हैं, हमारा कार्यक्रम बहुत बड़ा हो गया है, अब हमारे पास फ़ंक्शन है imprimir_ayuda() जो गणना और ब्लॉक में उपयोग करने का संदेश प्रदर्शित करता है main() अब हम एक समीक्षा करते हैं if(कुछ ऐसा जो हम किसी अन्य समय में एक प्रोग्रामिंग ट्यूटोरियल में देखेंगे, अब केवल यह जानना आवश्यक है कि यदि 2 से अधिक तर्कों को गणना विज्ञान में प्रवेश किया जाता है, तो यह कार्यक्रम समाप्त हो जाता है और मदद प्रदर्शित होती है। आइए इसे निष्पादित करते हैं:

खुद का। क्रिस्टोफर डियाज़ रिवरोस

जैसा कि आप देख सकते हैं, यह अब उस संख्या को प्रिंट करता है जिसे तर्कों की संख्या के बजाय वितरित किया गया है, लेकिन यह कि मैंने आपको उत्सुक के लिए told से पहले नहीं बताया था echo $? अंतिम प्रोग्राम के एक्जिट कोड को दिखाता है, जो है 1 क्योंकि यह त्रुटि में समाप्त हो गया है। अब समीक्षा करते हैं कि हमारी कहानी कैसी है:

खुद का। क्रिस्टोफर डियाज़ रिवरोस

अब हम जानते हैं कि हम जीथब के आगे 1 कमिट हैं, जो कि फाइल है main.c संशोधित किया गया है, आइए अगली कमेटी बनाकर करें git add main.c  और फिर git commit🙂

खुद का। क्रिस्टोफर डियाज़ रिवरोस

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

खुद का। क्रिस्टोफर डियाज़ रिवरोस

अब आप लाल और हरी रेखाएँ देख सकते हैं, हमने लाइब्रेरी जोड़ दी है stdlib.h, कोड के बहुत संशोधित और हमारी कहानी के लिए समारोह जोड़ा।

अब हम लॉग देखने जा रहे हैं:git log)

खुद का। क्रिस्टोफर डियाज़ रिवरोस

हम देख सकते हैं कि हम जीथब संस्करण के आगे दो कमिट हैं, हम उस उपयोग के लिए मार्कर को थोड़ा are बराबर करने जा रहे हैं git push origin master

इसके साथ ही हम कहते हैं, मेरे कमिट्स को url पर भेजें origin शाखा पर master

खुद का। क्रिस्टोफर डियाज़ रिवरोस

बधाई हो! अब आपके परिवर्तन जीथूब पर हैं, क्या आप मुझ पर विश्वास नहीं करते हैं? आइए इसकी समीक्षा करें 😉

खुद का। क्रिस्टोफर डियाज़ रिवरोस

अब हमारे पास जीथब comm पर 3 कमिट हैं

सारांश

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


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   पाब्लो कहा

    अच्छा ... मुझे नहीं पता कि तुम हो, लेकिन मैं इस रिपोर्ट में चित्र नहीं देख सकता ...

    सादर

  2.   पाब्लो कहा

    यह मेरे ब्राउज़र के साथ एक समस्या थी। झुंझलाहट पर शर्म आती है।

  3.   Tecprog विश्व कहा

    मुझे अभी भी इसे और अधिक विस्तार से पढ़ना है, मैं एक नौसिखिया हूं।

  4.   गिलर्मो कहा

    महान लेख जीआईटी के साथ शुरू करने के लिए, हालांकि मैं विस्तार से समझने के लिए नोट्स लेने की सलाह देता हूं।
    कुछ चीजें मेरे लिए स्पष्ट नहीं हुई हैं:
    इसका विकल्प क्या है Add .ignignore C जोड़ेंहालांकि मुझे लगता है कि मैं इसे देखूंगा जब मैं इसका अभ्यास करूंगा,
    git add main.c को अगली git कमिट के पहले फिर से क्यों करना पड़ता है, क्या main.c add git को उस फाइल को नेटवर्क वर्जन से तुलना करने के लिए कहता है? क्या यह स्वचालित रूप से ट्रैकिंग के लिए सभी जोड़ी गई फ़ाइलों की तुलना नहीं करता है?

    1.    क्रिसड आर कहा

      नमस्कार गुइलेर्मो that यह अच्छा है कि आपने इसे उपयोगी पाया, अपने सवालों के जवाब देने के लिए:

      .itignore एक फ़ाइल है जो गिट को बताती है कि कौन से प्रारूप या पैटर्न को अनदेखा करना है, इस मामले में C कारणों का चयन करते हैं। संकलन के समय उत्पन्न होने वाली अन्य फ़ाइलों को अनदेखा किया जाता है, जो अच्छा है क्योंकि अन्यथा आपका git प्रत्येक संकलन का तुरंत पागल हो जाएगा और फॉलो-अप or आप बड़ी संख्या में उन प्रारूपों की जांच कर सकते हैं जो बिल्ली में या पाठ संपादक के साथ अपने सी टेम्पलेट में छोड़ते हैं।

      यद्यपि गिट काम करने वाले पेड़ में जोड़े गए प्रत्येक फ़ाइल का ट्रैक रखेगा, यह विशेष रूप से चयन करने के लिए आवश्यक है कि कौन सी फाइलें अगली कमिट में आएंगी, आपको एक उदाहरण देने के लिए, चलो मान लें कि आपके काम ने आपको सक्षम होने से पहले 5 अलग-अलग फ़ाइलों को संशोधित करने का नेतृत्व किया है। परिणाम देखने के लिए। यदि आप थोड़ा और विशिष्ट होना चाहते हैं और समझाना चाहते हैं कि हर एक में क्या किया जाता है, तो आप फ़ाइल add git कर सकते हैं; git कमिट; git add file1; git कमिट ... .2; कमिट इस तरह से आपकी कहानी साफ है और परिवर्तनों को अच्छी तरह से परिभाषित किया गया है। और अगर आपको कुछ बदलना है, या फिर (अधिक उन्नत विषय) आप विशिष्ट चीजों को वापस ला सकते हैं या बाकी चीजों को बदले बिना विशिष्ट चीजों को जोड़ सकते हैं।

      आशा है कि यह पूछने के लिए helps अभिवादन और धन्यवाद में मदद करता है

    2.    क्रिसड आर कहा

      पुनश्च: git ऐड नेटवर्क पर संस्करण के साथ तुलना करने के लिए नहीं कहता है, लेकिन आपके काम की लाइन में पिछली प्रतिबद्धताओं के साथ, अगर यह स्थानीय (हरा) हो गया है, तो यह इसकी तुलना उसी के साथ करेगा, अगर यह रिमोट (लाल) हो गया है ) यह अन्य के साथ तुलना करेगा। बस स्पष्ट करने के लिए 😉

      1.    गिलर्मो कहा

        बिल्कुल सही, निश्चित रूप से यह स्पष्ट करता है।