यदि आप एक Linux उपयोगकर्ता हैं, तो आप शायद किसी बिंदु पर Git से मिले होंगे, शायद एक नया प्रोग्राम डाउनलोड करने की कोशिश करते समय या CVS या Subversion जैसे संस्करण नियंत्रण प्रणालियों को देखते समय। Git, Linux कर्नेल के प्रसिद्ध Linus Torvalds द्वारा बनाया गया रिविजन कंट्रोल सिस्टम है, जो मौजूदा समाधानों से असंतुष्ट होने के कारण बनाया गया था। डिज़ाइन में मुख्य जोर गति पर था, या अधिक विशेष रूप से, दक्षता पर। Git पिछली प्रणालियों की कई कमियों को संबोधित करता है और वह भी बहुत कम समय में। यदि आप Git सीखना चाहते हैं, तो यह शुरुआती गाइड आपको शुरू करने में मदद करेगा।
Git क्या करता है
मान लीजिए आप एक ग्राहक के लिए एक वेबसाइट बनाने पर काम कर रहे हैं। वे बताते हैं कि वे क्या चाहते हैं, आप इसे डिज़ाइन करते हैं, वे इसकी समीक्षा करते हैं और संशोधन करते हैं, आदि। ग्राहक से संशोधन के प्रत्येक सेट के साथ, साइट बदलती और बढ़ती है। बाद में, ग्राहक कह सकता है, "मुझे यह पिछले सितंबर की तरह बेहतर लगा था।" सामान्य परिस्थितियों में, आपको एक समस्या है। हो सकता है कि आपके पास उस समय की सभी फ़ाइलें और डेटा न हों, और आपका कोड इतना बदल गया हो कि वापस लौटना मुश्किल या असंभव हो।
रिविजन कंट्रोल सिस्टम का उद्देश्य उपरोक्त पैराग्राफ की लगभग सभी समस्याओं को हल करना है। आप अपने कोड और फ़ाइलों में प्रत्येक परिवर्तन को ट्रैक कर सकते हैं और किसी भी बिंदु पर वापस लौट सकते हैं जहां चीजें थीं।
Git कैसे काम करता है
प्रत्येक प्रोजेक्ट की डायरेक्टरी अपना खुद का Git रिपॉजिटरी है। आप उस प्रोजेक्ट के लिए अपनी सभी फ़ाइलों को उस डायरेक्टरी में रखते हैं और समय-समय पर Git को फ़ाइलों की वर्तमान स्थिति के साथ अपनी जानकारी अपडेट करने के लिए कहते हैं। Git को स्थिति रिकॉर्ड करने के लिए कहने की वह प्रक्रिया एक commit है। हर बार जब आप कमिट करते हैं (जो अक्सर होना चाहिए), Git उन सभी फ़ाइलों को देखता है जिन्हें ट्रैक करने का निर्देश दिया गया है और उन फ़ाइलों में अंतर (सभी नई फ़ाइलें नहीं) को ".git" डायरेक्टरी में सहेजता है। प्रत्येक कमिट आपके प्रोजेक्ट के विकास के लिए एक नया सेव पॉइंट बन जाता है।
वैकल्पिक रूप से, आप अपने लोकल git रिपॉजिटरी को बाहरी होस्ट, जैसे GitHub या अपने स्वयं के Git सर्वर पर पुश कर सकते हैं। यह एक प्रोजेक्ट पर कई योगदानकर्ताओं को अपने लोकल रिपॉजिटरी में लगातार, तेज़ कमिट करने की अनुमति देता है, फिर उन सभी लोकल कमिट को ऑनलाइन रिपॉजिटरी के लिए एक सिंगल अपडेट में बंडल करता है।
यह उन चीजों में से एक है जो Git को कुछ अन्य वर्जन कंट्रोल सिस्टम (VCS) की तुलना में तेज़ बनाता है: आप अपने लोकल रिपॉजिटरी में बार-बार कमिट कर सकते हैं बिना प्रत्येक के लिए सर्वर पर अपलोड करने में समय और बैंडविड्थ बर्बाद किए।
Git प्राप्त करना
अधिकांश Linux डिस्ट्रो Git के साथ प्रीइंस्टॉल्ड आते हैं। यदि आपका सिस्टम इसके साथ नहीं आता है, तो आप इसे अपने सॉफ़्टवेयर सेंटर या पैकेज मैनेजर से आसानी से इंस्टॉल कर सकते हैं, क्योंकि यह अधिकांश रिपॉजिटरी में आसानी से उपलब्ध है।
आप इसे टर्मिनल में इंस्टॉल कर सकते हैं:
# Debian/Ubuntu sudo apt install git-all # Fedora sudo dnf install git-all
यदि आप किसी अन्य प्लेटफॉर्म पर हैं या अन्यथा ऐसे रिपॉजिटरी का उपयोग नहीं कर सकते हैं, तो आप यहां पैकेज डाउनलोड और मैन्युअली इंस्टॉल कर सकते हैं।
Git का उपयोग करना
लोकल git रिपॉजिटरी बनाने की प्रक्रिया त्वरित और आसान है। पहले, अपने प्रोजेक्ट के लिए उपयोग करने का इरादा रखने वाली एक डायरेक्टरी बनाएं और उस स्थान पर अपना टर्मिनल खोलें।
cd /my-git-directory
कमांड के साथ एक Git रिपॉजिटरी शुरू करें:
git init
यह एक ".git" डायरेक्टरी बनाएगा (दृश्य से छिपा हुआ) जो आपकी रिपॉजिटरी जानकारी रखेगा। संभावना है कि आप कुछ फ़ाइलें जोड़ना शुरू करना चाहेंगे। हम एक साधारण README फ़ाइल बनाकर शुरू करेंगे, इसे रिपॉजिटरी की देखने वाली फ़ाइलों की सूची में जोड़ेंगे, फिर अपनी फ़ाइल को रिपॉजिटरी में कमिट करेंगे।
#Insert some text into a new file echo "TODO: Create documentation" > README.txt #Now tell Git to keep track of this file's changes #This only needs to be done once per file (more #on that in a moment) git add README.txt #And now save state to Git repository git commit README.txt
आपको एक टेक्स्ट एडिटर स्क्रीन पर लाया जाएगा (ठीक कौन सा टेक्स्ट एडिटर आपके डिस्ट्रो और कॉन्फ़िगरेशन पर निर्भर करता है) जहां आपको इस कमिट के बारे में कोई नोट दर्ज करना चाहिए। ये आमतौर पर पिछले कमिट के बाद हुए परिवर्तनों के संक्षिप्त सारांश होते हैं। एक बार जब आप सेव करते हैं और टेक्स्ट एडिटर से बाहर निकलते हैं, तो कमिट सफलतापूर्वक पूरा हो जाना चाहिए।
यदि उपरोक्त के दौरान, Git यह कहते हुए एक त्रुटि फेंकता है कि यह आपको पहचान नहीं सकता, तो आपको इसे बताना होगा कि आप कौन हैं। ऐसा करना उतना ही सरल है जितना दर्ज करना:
git config --global user.name "Your_Username" git config --global user.email "your_email_address@mailserver.com"
हमने अनिवार्य रूप से उस फ़ाइल की वर्तमान स्थिति का एक स्नैपशॉट बनाया है। आपके द्वारा किए गए कोई भी आगे के परिवर्तन (जिन्हें आप कमिट करते हैं) उसके ऊपर सेव किए जाएंगे।
ऊपर दिए गए उदाहरण की तरह प्रत्येक फ़ाइल को व्यक्तिगत रूप से जोड़ना और कमिट करना थकाऊ हो सकता है। इसे ठीक करने के लिए, आप इसके बजाय वर्तमान डायरेक्टरी में सभी फ़ाइलों को जोड़ सकते हैं:
#Note the trailing "." git add .
आप सभी ज्ञात परिवर्तित फ़ाइलों को एक साथ कमिट कर सकते हैं:
git commit -a
कुछ अन्य उपयोगी git कमांड विकल्पों में शामिल हैं:
#Make a full clone of existing repository, such as from the website of a software project git clone (URL, ie git://github.com/github/linux-2.6.git) #Move/rename a file. This spares you from having to remove and re-add the file #if it had been moved by bash git mv (source) (destination) #Delete a file and remove from Git repo git rm (target) #See branches in this repository git branch #Create a new branch of the Git tree git branch (new branch name, ie "experimental") #Switch from one branch to another git checkout (branch name, ie "experimental") #Merge branch (branch) into current tree git merge (branch)
बेशक, यह सिर्फ शुरुआत है कि Git क्या कर सकता है। एक बार जब आप Git में महारत हासिल कर लेते हैं, तो आप GitHub के साथ शुरू कर सकते हैं और सीख सकते हैं कि अपने पुल रिक्वेस्ट में स्क्रीनशॉट और एनिमेशन कैसे जोड़ें।