कोर्स
Git किसी भी व्यक्ति के लिए, जो कोड के साथ काम करता है—चाहे आप सॉफ़्टवेयर डेवलपर हों, डेटा साइंटिस्ट, डेटा इंजीनियर, या मशीन लर्निंग प्रैक्टिशनर—एक अनिवार्य टूल है। यह टीमों को एक ही प्रोजेक्ट पर एक साथ सहयोग करने देता है और कोड में हुए बदलावों का स्पष्ट इतिहास प्रदान करता है, जिससे अपडेट को ट्रैक करना और प्रबंधित करना आसान हो जाता है।
इस लेख में, मैं आपको सबसे ज़्यादा इस्तेमाल होने वाले Git कमांड, उनका सिंटैक्स, और उन्हें अपने दैनिक काम में कैसे लागू करें—यह सब समझाऊंगा!
बेसिक Git कमांड
Git के साथ काम करने के बुनियादी चरणों में एक रिपॉज़िटरी बनाना, किसी मौजूदा रिपॉज़िटरी की कॉपी करना, और कोड एडिट करना शामिल है। इस सेक्शन में इन आधारभूत git फ़ंक्शंस का विस्तार से वर्णन किया गया है, साथ ही उन्हें लागू करने के लिए सिंटैक्स भी दिया गया है।
Git इंस्टॉल करनी है? अपने सिस्टम पर Git इंस्टॉल करने के लिए इस गाइड का पालन करें।
git init
git init कमांड एक नई Git रिपॉज़िटरी बनाता है या किसी मौजूदा को फिर से इनिशियलाइज़ करता है।
जब आप यह कमांड चलाते हैं, तो आपकी वर्तमान डायरेक्टरी एक Git रिपॉज़िटरी बन जाती है, जिससे आप उसके बदलाव ट्रैक कर सकते हैं। यह डायरेक्टरी में एक हिडन .git फ़ोल्डर जोड़ता है, जहाँ Git प्रोजेक्ट से संबंधित सभी मेटाडेटा, वर्शन हिस्ट्री, और लॉग्स स्टोर करता है।
git clone
किसी Git रिपॉज़िटरी को एक स्थान से दूसरे स्थान पर कॉपी करने के लिए हम git clone कमांड का इस्तेमाल करते हैं। यह आम तौर पर किसी मौजूदा रिपॉज़िटरी—उसके लॉग्स और वर्ज़न सहित—को GitHub या GitLab जैसे रिमोट सर्वर से आपकी लोकल मशीन पर कॉपी करता है।
चरण 1: उस GitHub रिपॉज़िटरी पर जाएँ जिसे आप क्लोन करना चाहते हैं और “Code” पर क्लिक करें।

git clone कमांड
चरण 2: चित्र में दिखाए अनुसार URL कॉपी करें।

git clone बेसिक कमांड
चरण 3: लोकल मशीन में जिस डायरेक्टरी में आप इस रिपॉज़िटरी को क्लोन करना चाहते हैं, वहाँ जाएँ और निम्न कमांड चलाएँ:
git clone <copied_URL>
git status
git status कमांड हमें निम्न के बारे में जानकारी दिखाता है:
- modified files (वे फ़ाइलें जिनमें बदलाव हुए हैं लेकिन स्टेज नहीं हुई हैं)।
- untracked files (वे फ़ाइलें जिन्हें Git ट्रैक नहीं कर रहा)।
- staged files (वे फ़ाइलें जो स्टेज हो चुकी हैं और कमिट के लिए तैयार हैं)।
सिंटैक्स इस प्रकार है:
git status

Git status कमांड
git add
git add कमांड आपके बदलावों को स्टेजिंग एरिया में जोड़ता है। यह Git को बताता है कि जब यूज़र कमिट कमांड चलाएगा तो रिपॉज़िटरी में इन बदलावों को अपडेट किया जाना चाहिए।
git add .: सभी फ़ाइलों में किए गए बदलावों को स्टेज करता है।git add <file_name>: केवल किसी विशिष्ट फ़ाइल में किए गए बदलावों को स्टेजिंग एरिया में शामिल करता है।
git commit
git commit कमांड आपके द्वारा किए गए (या स्टेज किए गए) बदलावों को लोकल रिपॉज़िटरी में सेव करता है। हर बार जब आप git commit चलाते हैं, Git उस समय आपकी रिपॉज़िटरी का एक स्नैपशॉट बनाता है। इससे ज़रूरत पड़ने पर आप किसी पिछले कमिट पर वापस जा सकते हैं।
सिंटैक्स इस प्रकार है:
git commit -m "commit_message"
कमिट संदेश उस कमिट में किए गए बदलावों का संक्षिप्त विवरण होता है।
रिमोट रिपॉज़िटरी के साथ काम करना
GitHub अपनी रिमोट सर्वरों पर विभिन्न एप्लिकेशन होस्ट करता है, जिससे डेवलपर्स उन्हें ट्रैक और मैनेज कर पाते हैं। इस सेक्शन में, हम देखेंगे कि Git कमांड का उपयोग करके उन रिमोट रिपॉज़िटरी से डेटा कैसे निकाला जाए, ट्रांसफ़र किया जाए, और इंटरैक्ट किया जाए।
जानना चाहते हैं कि GitHub कैसे काम करता है? रिपॉज़िटरी, पुल रिक्वेस्ट और सहयोग की सर्वोत्तम प्रक्रियाएँ समझने के लिए Introduction to GitHub Concepts से शुरुआत करें।
git remote add
git remote add कमांड आपकी लोकल Git रिपॉज़िटरी और रिमोट Git रिपॉज़िटरी के बीच एक कनेक्शन बनाता है, जिससे आप उनके बीच बदलावों को पुश और पुल कर सकते हैं:
git remote add <repo_name> <remote_url>
<repo_name>: रिमोट रिपॉज़िटरी का एक उपनाम (डिफ़ॉल्ट रूप से “origin”)।<remote_url>: रिमोट रिपॉज़िटरी का URL।
git push
git push कमांड आपकी रिमोट रिपॉज़िटरी को लोकल रिपॉज़िटरी के साथ सिंक करता है। इस कमांड को चलाने के बाद, रिमोट रिपॉज़िटरी में आपके लोकल रूप से कमिट किए गए सभी बदलाव दिखाई देंगे।
git push <remote> <branch>
<remote>: रिमोट रिपॉज़िटरी का एलियस (डिफ़ॉल्ट रूप से “origin”)।<brach>: उस ब्रांच का नाम जिसे आप पुश करना चाहते हैं।
git push के कुछ वैरिएंट भी हैं, उदाहरण के लिए:
git push ---all origin
ऊपर दिया कमांड आपकी सभी लोकल ब्रांचों को रिमोट रिपॉज़िटरी पर पुश करता है।
git push --force origin main
ऊपर दिया कमांड रिमोट रिपॉज़िटरी पर main ब्रांच को आपकी लोकल main ब्रांच से ओवरराइट कर देता है। इसका उपयोग करते समय सावधानी बरतें, क्योंकि रिमोट main ब्रांच अपना सारा इतिहास खो सकती है।
git pull
git pull कमांड रिमोट रिपॉज़िटरी के बदलावों को लाकर उन्हें लोकल रिपॉज़िटरी के साथ मर्ज कर देता है।
git pull वास्तव में दो कमांड का संयोजन है: git fetch और git merge।
पहले, git fetch रिमोट रिपॉज़िटरी से सभी बदलाव—नई कमिट, टैग, और ब्रांचें—प्राप्त करता है। उसके बाद, git merge उन बदलावों को वर्तमान लोकल ब्रांच में एकीकृत करता है।
सिंटैक्स इस प्रकार है:
git pull origin feature-branch
ऊपर दिया कमांड रिमोट रिपॉज़िटरी की feature_branch से डेटा लाता है और उसे आपकी वर्तमान लोकल ब्रांच में मर्ज कर देता है।
git fetch
git fetch कमांड आपको रिमोट रिपॉज़िटरी के बदलावों की समीक्षा करने देता है, उन्हें लोकल में मर्ज करने से पहले। यह बदलावों को डाउनलोड करता है और उन्हें रिमोट ट्रैकिंग ब्रांचों में अपडेट करता है। जिनके लिए नया है: रिमोट ट्रैकिंग ब्रांचें, रिमोट रिपॉज़िटरी ब्रांचों की कॉपी होती हैं।
उदाहरण के लिए, निम्न कमांड रिमोट रिपॉज़िटरी के बदलावों को डाउनलोड करके origin के अंतर्गत रिमोट ट्रैकिंग ब्रांचों में अपडेट करता है:
git fetch origin
Git में ब्रांचिंग और मर्जिंग
Git ब्रांचिंग डेवलपर्स को नई फीचर्स या बग फिक्स पर मुख्य रिपॉज़िटरी को प्रभावित किए बिना स्वतंत्र रूप से काम करने देती है। जब बदलाव तैयार हो जाएँ, तो मर्जिंग उन्हें मुख्य कोडबेस में शामिल कर देती है। आइए इस प्रक्रिया में शामिल प्रमुख कमांड देखें।
git branch
git branch कमांड ब्रांचों की सूची दिखाता है, नई ब्रांचें बनाता है, या ब्रांचों को हटाता है। एक ब्रांच आपकी रिपॉज़िटरी का एक अलग संस्करण होती है।
यदि आप अपने एप्लिकेशन के लिए कोई नया फीचर विकसित कर रहे हैं, तो आप एक नई ब्रांच बना सकते हैं और उस पर काम कर सकते हैं।जब बदलाव तैयार और परीक्षण हो जाएँ, तो आप इस नई ब्रांच को मुख्य ब्रांच में मर्ज कर सकते हैं। इससे आप नई फीचर्स पर स्वतंत्र रूप से काम कर पाते हैं, बिना मुख्य लाइन को सीधे प्रभावित किए।
git branch: रिपॉज़िटरी में मौजूद सभी ब्रांचों की सूची देता है।git branch <branch_name>: “branch_name” नाम की नई ब्रांच बनाता है।git branch -d <branch_name>: “branch_name” नाम की ब्रांच हटाता है।
git checkout
git checkout कमांड दो काम कर सकता है: ब्रांचों के बीच स्विच करना या फ़ाइलों को पिछली स्थिति में रिस्टोर करना।
- ब्रांच स्विच करना: Git 2.23 से पहले,
git checkout branch_nameकमांड का उपयोग आपकी वर्तमान ब्रांच से किसी दूसरी ब्रांच में स्विच करने के लिए किया जाता था। यह केवल मौजूदा ब्रांचों में स्विच करने के लिए ही नहीं था; आप एक नई ब्रांच बनाकर उसी पर स्विच भी कर सकते हैं।
निम्न कमांड “feature_branch” नाम की नई ब्रांच बनाता है और उसी पर स्विच कर देता है:
git checkout -b feature_branch
हालाँकि, Git के नवीनतम संस्करण में, फ़ाइलों को रिस्टोर करने के लिए git checkout की जगह git switch को प्राथमिकता दी गई है।
- फ़ाइलें रिस्टोर करना: आप किसी फ़ाइल में किए गए बदलावों को त्यागकर उसे उसकी पिछली वर्ज़न में रिस्टोर कर सकते हैं, निम्न कमांड से।
git checkout -- <file-name>
आप यह किसी दूसरी ब्रांच की फ़ाइल के साथ भी कर सकते हैं, इस प्रकार:
git checkout <branch-name> -- <file-name>
git merge
यदि आपने किसी नई ब्रांच में काम किया है, तो बदलाव लागू करने के लिए आप git merge का उपयोग करके उसे मुख्य ब्रांच में मर्ज कर सकते हैं। Git दो तरीकों से मर्ज करता है:
- फास्ट-फ़ॉरवर्ड मर्ज: मान लीजिए आपने मुख्य ब्रांच से “feature_x” नाम की नई ब्रांच बनाई और उस पर काम किया। यदि “feature_x” बनाने के बाद मुख्य ब्रांच में कोई अपडेट नहीं हुआ है, तो “feature_x” के बदलावों को मुख्य ब्रांच में कमिट करने के बजाय Git मुख्य ब्रांच को “feature_x” के नवीनतम संस्करण की ओर इंगित कर देता है। इस स्थिति में कोई नया मर्ज कमिट नहीं बनता।
- थ्री-वे मर्ज: यदि “feature_x” और मुख्य ब्रांच—दोनों में संपादन हुए हैं, तो Git बदलावों को मिलाकर मुख्य ब्रांच पर एक नया मर्ज कमिट बनाता है।
उदाहरण के लिए:
C---D---F (feature-branch)
/
A---B---E---G (main)
कमिट B पर, फीचर ब्रांच C बनाई जाती है। फीचर ब्रांच बनने के बाद भी मुख्य ब्रांच में अतिरिक्त कमिट E और G हैं। इसलिए, फीचर को मुख्य में मर्ज किया जाता है, जिससे एक नया मर्ज कमिट M बनता है, इस प्रकार:
C---D---F (feature-branch)
/ \
A---B---E---G---M (main)
git rebase
git rebase ब्रांचों के बीच बदलावों को एकीकृत करने का एक और तरीका है, लेकिन यह git merge से अलग तरह से काम करता है। मर्ज मुख्य और फीचर ब्रांच—दोनों का पूरा इतिहास सुरक्षित रखता है। वहीं, रीबेस कमिट हिस्ट्री को ओवरराइट करके उसे रैखिक और साफ़ बनाता है।
इसके अलावा, मर्ज में एक अतिरिक्त मर्ज कमिट की आवश्यकता होती है, जबकि रीबेस कोई नया कमिट नहीं बनाता। Git rebase दो चरणों में काम करता है:
- फीचर ब्रांच पर स्विच करें
- मुख्य ब्रांच पर रीबेस करें।
उदाहरण:
C---D---F (feature-branch)
/
A---B---E---G (main)
- चरण 1:
git checkout feature_branchचलाएँ। - चरण 2:
git rebase mainचलाएँ: फीचर ब्रांच के पूरे काम को मुख्य ब्रांच पर ले जाना, यानी कमिटC,D,FकोC’,D’, औरF’के रूप में मुख्य ब्रांच के नवीनतम कमिटGके ऊपर दोबारा लागू करना। इससे निम्न की तरह एक रैखिक हिस्ट्री बनती है:
A---B---E---G---C'---D'---F' (main)
क्योंकि मर्ज और रीबेस ऑपरेशन अक्सर भ्रमित कर देते हैं, यहाँ उनके बीच के अंतर का संक्षेप दिया गया है:
|
मर्ज |
रीबेस |
|
यह दोनों ब्रांचों की पूरी कमिट हिस्ट्री सुरक्षित रखता है। |
यह कमिट हिस्ट्री को रैखिक बनाने के लिए ओवरराइट करता है। |
|
एक अतिरिक्त मर्ज कमिट बनता है। |
कोई अतिरिक्त कमिट नहीं बनता। |
|
हिस्ट्री में ब्रांच संरचना दिखाई देती है। |
यह कमिट हिस्ट्री को सीधी रेखा जैसा दिखाता है। |
|
इसे तब उपयोग करें जब आप प्रत्येक ब्रांच की कमिट हिस्ट्री और उनके मर्ज होने की टाइमलाइन ट्रैक रखना चाहते हों। |
इसे तब उपयोग करें जब आपको स्पष्ट और आसानी से समझ में आने वाली कमिट हिस्ट्री चाहिए। |
रिमोट ब्रांचों के साथ और सीखना चाहते हैं? इस स्टेप-बाय-स्टेप ट्यूटोरियल में git checkout का उपयोग करके रिमोट ब्रांचों को कैसे चेकआउट और ट्रैक करें, जानें।
Git हिस्ट्री और बदलावों को पूर्ववत करना
Git विकास के विभिन्न चरणों में हिस्ट्री देखने और बदलावों को पूर्ववत करने के लिए कई कमांड प्रदान करता है। प्रासंगिक कमांड यहाँ चर्चा की गई हैं।
git log
git log कमांड आपकी वर्तमान ब्रांच की पूरी कमिट हिस्ट्री दिखाता है। इसमें चार मुख्य फ़ील्ड होते हैं: कमिट, लेखक, दिनांक, और कमिट संदेश।

git कमिट हिस्ट्री
- Commit: एक यूनिक ID।
- Author: व्यक्ति का नाम और ईमेल।
- Date: वह टाइमस्टैम्प जब बदलाव कमिट किया गया।
- Commit message: कमिट का विवरण।
git diff
git diff आपकी रिपॉज़िटरी की विभिन्न अवस्थाओं के बीच अंतर दिखाता है—चाहे आप अपनी वर्तमान डायरेक्टरी की तुलना स्टेजिंग एरिया से कर रहे हों, स्टेजिंग एरिया की तुलना पिछले कमिट से, या दो फ़ाइलों या ब्रांचों की—जो भी आप निर्दिष्ट करें।
git diff- आपकी वर्तमान वर्किंग डायरेक्टरी और स्टेजिंग एरिया के बीच का अंतर दिखाता है।git diff -- cached: स्टेजिंग एरिया और पिछले कमिट के बीच के अंतर दिखाता है।git diff commit1 commit2-commit 1औरcommit 2के बीच का अंतर।git diff branch1..branch2-branch 1औरbranch 2के बीच के अंतर की तुलना करता है।
git reset
git reset कमांड आपको वर्तमान HEAD को किसी विशिष्ट पूर्व स्थिति पर रीसेट करके बदलावों को पूर्ववत करने देता है। HEAD को किसी पिछले कमिट पर ले जाने के लिए आपके पास तीन वैरिएंट हैं: “soft”, “mixed”, और “hard”, जिन्हें आप reset कमांड के साथ उपयोग कर सकते हैं।
- Soft: पिछले कमिट पर वापस जाता है लेकिन मौजूदा बदलावों को स्टेज पर रखता है, ताकि आवश्यकता होने पर आप उन्हें बाद में दोबारा कमिट कर सकें।
git reset --soft HEAD~1
- Mixed: पिछले कमिट पर लौटता है और वर्तमान कमिट के बदलावों को स्टेज एरिया से हटा देता है। हालाँकि, ये बदलाव आपकी वर्किंग डायरेक्टरी में बने रहते हैं।
git reset --mixed HEAD~1
- Hard: यह पिछले कमिट की ओर इंगित करेगा और वर्किंग डायरेक्टरी और स्टेजिंग एरिया—दोनों से वर्तमान कमिट के अपडेट हटा देगा।
git reset --hard HEAD~1
Git में बदलावों को पूर्ववत करना है? इस विस्तृत गाइड में git reset और git revert के बीच के अंतर जानें।
Git स्टैशिंग और क्लीन-अप
Git में काम करते समय, आपको कभी-कभी बिना कमिट किए बदलावों को अस्थायी रूप से अलग रखना पड़ सकता है या रिपॉज़िटरी में अवांछित फ़ाइलों की सफ़ाई करनी पड़ सकती है। ऐसे में Git स्टैशिंग और क्लीनअप कमांड बहुत उपयोगी होते हैं।
git stash
मान लीजिए आप किसी पिछली स्थिति में जाना चाहते हैं, लेकिन अपना वर्तमान प्रोग्रेस कमिट नहीं करना चाहते; तो आप git stash का उपयोग कर सकते हैं। यह आपके अनकंमिटेड बदलावों को अस्थायी रूप से सेव कर लेता है और आपकी वर्किंग डायरेक्टरी को अंतिम कमिटेड स्थिति में रीसेट कर देता है।
git stash pop
यदि आपने पहले कुछ बदलाव स्टैश किए हैं और उन्हें अपनी वर्किंग डायरेक्टरी में वापस लाना चाहते हैं, तो git stash pop कमांड का उपयोग करें। यह नवीनतम स्टैश किए गए बदलावों को वर्तमान डायरेक्टरी पर लागू करेगा और उन्हें स्टैश सूची से हटा देगा।
git clean
git clean कमांड Git रिपॉज़िटरी से अनट्रैक्ड फ़ाइलों को डिलीट करता है। डिलीट करने से पहले किन चीज़ों को हटाया जाएगा यह देखने के लिए git clean -n कमांड का उपयोग करें!
अपनी Git हिस्ट्री को साफ़ करना चाहते हैं? कई कमिट्स को एक में मिलाना सीखें इस Git squash ट्यूटोरियल के साथ।
Git कॉन्फ़िगरेशन और यूज़र सेटिंग्स
Git आपको अलग-अलग स्तरों पर यूज़र सेटिंग्स कॉन्फ़िगर करने देता है। आइए उन्हें यहाँ समझते हैं।
git config
git config कमांड आपको अपनी ज़रूरतों के अनुसार Git सेटिंग्स कस्टमाइज़ करने देता है। आप तीन स्तरों पर सेटिंग्स कॉन्फ़िगर कर सकते हैं: लोकल, सिस्टम, और ग्लोबल स्तर।
- सिस्टम स्तर: यह रूट-लेवल एक्सेस के साथ सबसे व्यापक कॉन्फ़िगरेशन स्तर है।
- ग्लोबल स्तर: इस स्तर की कॉन्फ़िगरेशन वर्तमान यूज़र के सभी रिपॉज़िटरी पर लागू होती है।
- लोकल स्तर: वर्तमान Git रिपॉज़िटरी से संबंधित सेटिंग्स इस स्तर पर कस्टमाइज़ की जा सकती हैं।
ये कुछ आम git config कमांड हैं:
git config -list: सभी स्तरों की Git सेटिंग्स दिखाता है।git config --global user.name "Your_name": आपके सिस्टम की सभी रिपॉज़िटरी के लिए Git यूज़रनेम “Your_name” सेट करता है।git config --global user.email "your.email@example.com": आपके सिस्टम की सभी रिपॉज़िटरी के लिए ईमेल पता सेट करता है।
हम जानते हैं कि एक Git रिपॉज़िटरी इनिशियलाइज़ करते समय डिफ़ॉल्ट मुख्य ब्रांच master होती है। लेकिन आप इसे अपनी इच्छा अनुसार निम्न कमांड से बदल सकते हैं:
git config --global init.defaultBranch "srujana_master"
ऊपर दिए कमांड में, हमने ग्लोबल स्तर (सिस्टम की सभी रिपॉज़िटरी के लिए) पर डिफ़ॉल्ट master ब्रांच को "srujana_master" से बदल दिया है।
आप अन्य ग्लोबल-लेवल सेटिंग्स भी लागू कर सकते हैं। उदाहरण के लिए, अपने डिफ़ॉल्ट टेक्स्ट एडिटर को VS Code में बदलने के लिए निम्न कमांड चलाएँ:
git config -global core.editor "code-w"
आप अपने खुद के Git कमांड भी बना सकते हैं। उदाहरण:
git config --global alias.slice branch
ऊपर दिया कमांड branch के लिए slice नाम का एक नया उपनाम बनाता है। तो, यदि आप नई ब्रांच बनाना चाहते हैं, तो git branch branch_name की जगह git slice branch_name चला सकते हैं।
Git कमांड सारांश
यहाँ उन Git कमांड का सारांश है जिन्हें हमने आपके लिए सुविधाजनक रूप से संकलित किया है:
|
कमांड |
विवरण |
उदाहरण उपयोग |
|
|
एक नई Git रिपॉज़िटरी इनिशियलाइज़ करें। |
|
|
|
किसी मौजूदा Git रिपॉज़िटरी को क्लोन करें। |
|
|
|
वर्किंग डायरेक्टरी में फ़ाइलों की स्थिति जाँचें। |
|
|
|
फ़ाइलों को स्टेजिंग एरिया में जोड़ें। |
|
|
|
स्टेज किए गए बदलावों को लोकल रिपॉज़िटरी में कमिट करें। |
|
|
|
रिमोट रिपॉज़िटरी कनेक्शन जोड़ें। |
|
|
|
कमिट किए गए बदलावों को रिमोट रिपॉज़िटरी पर पुश करें। |
|
|
|
रिमोट रिपॉज़िटरी से बदलाव फ़ेच और मर्ज करें। |
|
|
|
रिमोट रिपॉज़िटरी से बदलाव फ़ेच करें, बिना मर्ज किए। |
|
|
|
ब्रांचों की सूची, निर्माण या हटाना। |
|
|
|
ब्रांचों के बीच स्विच करें या फ़ाइलें रिस्टोर करें (पुराना तरीका)। |
|
|
|
ब्रांचों के बीच स्विच करें (नए संस्करणों में वरीय)। |
|
|
|
एक ब्रांच से दूसरी में बदलाव मर्ज करें। |
|
|
|
क्लीनर हिस्ट्री के लिए एक ब्रांच के कमिट को दूसरी पर फिर से लागू करें। |
|
|
|
कमिट हिस्ट्री देखें। |
|
|
|
रिपॉज़िटरी की विभिन्न अवस्थाओं के बीच अंतर दिखाएँ। |
|
|
|
HEAD को पूर्व स्थिति पर रीसेट करके बदलाव पूर्ववत करें। |
|
|
|
अनकंमिटेड बदलावों को अस्थायी रूप से सेव करें और वर्किंग डायरेक्टरी रीसेट करें। |
|
|
|
नवीनतम स्टैश किए बदलावों को वर्किंग डायरेक्टरी पर लागू करें। |
|
|
|
रिपॉज़िटरी से अनट्रैक्ड फ़ाइलें हटाएँ। |
|
|
|
सिस्टम, ग्लोबल या लोकल स्तर पर Git सेटिंग्स कॉन्फ़िगर करें। |
|
Git का उपयोग करने के सर्वोत्तम अभ्यास
Git का प्रभावी उपयोग केवल बदलावों को ट्रैक करना नहीं है—यह एक साफ़, संरचित और सहयोगी वर्कफ़्लो बनाए रखने के बारे में है। सर्वोत्तम अभ्यास अपनाने से आपकी रिपॉज़िटरी व्यवस्थित रहती है, आपकी कमिट हिस्ट्री सार्थक बनती है, और आपका विकास-प्रक्रिया सुचारू चलती है।
Git के साथ काम करते समय अपनाने योग्य कुछ प्रमुख आदतें यहाँ हैं:
- अक्सर कमिट करें: Git जैसे वर्शन कंट्रोल का एक प्रमुख उद्देश्य समय के साथ बदलावों को प्रभावी ढंग से ट्रैक करना है। जब आप प्रत्येक बदलाव को अलग-अलग कमिट करते हैं, बजाय कई बदलाव एक साथ कमिट करने के, तो बाद में यह समझना आसान हो जाता है कि हर कमिट में क्या संशोधित हुआ।
- स्पष्ट संदेशों के साथ कमिट करें: हर बार जब आप कमिट करें, तो उसके साथ एक स्पष्ट संदेश जोड़ें जो बताता हो कि वह कमिट किस बारे में है। अगली बार जब आप कमिट्स ट्रैक करेंगे, तो यह जानना बहुत आसान होगा कि प्रत्येक कमिट ने कोड में क्या बदलाव किए हैं।
- ब्रांचों का उपयोग करें: किसी भी नए फीचर या बग फिक्स के लिए एक ब्रांच बनाएँ, उस पर काम करें, और मर्ज करें। यह मुख्य प्रोजेक्ट से नए विकास कार्य को अलग रखने का सर्वोत्तम तरीका है।
- .gitignore का उपयोग करें: .gitignore फ़ाइल में प्रोजेक्ट से संबंधित वे फ़ाइलें और डायरेक्टरी होती हैं जिन्हें ट्रैक करना आवश्यक नहीं। इनमें आम तौर पर स्वतः जनरेट की गई फ़ाइलें, बिल्ड आर्टिफैक्ट, लॉग, टेम्पररी और प्लेटफ़ॉर्म-विशिष्ट फ़ाइलें शामिल होती हैं। इन्हें इग्नोर करने से अनावश्यक लॉग्स और वर्ज़न ट्रैकिंग से बचाव होगा और आपकी हिस्ट्री साफ़ रहेगी।
निष्कर्ष
Git बदलावों को ट्रैक करने, दूसरों के साथ सहयोग करने, और एक सुव्यवस्थित विकास वर्कफ़्लो बनाए रखने के लिए एक शक्तिशाली टूल है। इस लेख में, मैंने आपके प्रोजेक्ट्स को अधिक प्रभावी ढंग से प्रबंधित करने में मदद करने के लिए आवश्यक Git कमांड और सर्वोत्तम अभ्यासों को कवर किया है।
बेशक, सीखने के लिए हमेशा और भी बहुत कुछ है! यदि आप अभी शुरुआत कर रहे हैं, तो मजबूत बुनियाद बनाने के लिए Introduction to Git देखें। जो लोग अपनी स्किल्स को और निखारना चाहते हैं, उनके लिए Intermediate Git उन्नत वर्कफ़्लोज़ और तकनीकों में गहराई से जाता है।
भविष्य के प्रोजेक्ट्स के लिए Git का त्वरित संदर्भ चाहिए? आवश्यक कमांड अपने पास रखें इस Git चीट शीट के साथ!
FAQs
git pull और git fetch में क्या अंतर है?
git pull रिमोट रिपॉज़िटरी से बदलावों को फ़ेच करता है और उन्हें आपकी लोकल ब्रांच में मर्ज कर देता है, जबकि git fetch केवल अपडेट डाउनलोड करता है, जिससे आप उन्हें मर्ज करने से पहले समीक्षा कर सकें।
मैं Git ब्रांच का नाम कैसे बदलूँ?
वर्तमान ब्रांच का नाम बदलने के लिए:
git branch -m new-branch-name
यदि किसी दूसरी ब्रांच का नाम बदलना है:
git branch -m old-branch-name new-branch-nameमैं Git में किसी ब्रांच को कैसे डिलीट करूँ?
लोकल ब्रांच डिलीट करने के लिए:
git branch -d branch-name
रिमोट ब्रांच डिलीट करने के लिए:
git push origin --delete branch-namegit merge और git rebase में क्या अंतर है?
git merge अलग-अलग ब्रांचों के बदलावों को मिलाता है और हिस्ट्री को सुरक्षित रखता है, जबकि git rebase कमिट हिस्ट्री को फिर से लिखकर एक साफ़, रैखिक अनुक्रम बनाता है।
क्या मैं किसी git कमिट को पूर्ववत कर सकता/सकती हूँ?
हाँ! अंतिम कमिट को पूर्ववत करना है लेकिन बदलावों को स्टेजिंग एरिया में ही रखना है, तो:
git reset --soft HEAD~1
अंतिम कमिट को पूर्ववत करके बदलावों को स्टेजिंग से हटाना है, तो:
git reset --mixed HEAD~1
बदलावों को पूरी तरह त्यागना है, तो:
git reset --hard HEAD~1मैं कैसे जाँचूँ कि मैं किस ब्रांच पर हूँ?
चलाएँ:
git branch --show-current
या बस:
git statusमैं एक ही फ़ाइल में किए बदलाव कैसे पूर्ववत करूँ?
किसी फ़ाइल में unstaged बदलावों को त्यागने के लिए:
git checkout -- filename
किसी फ़ाइल को उसकी अंतिम कमिटेड स्थिति में लौटाने के लिए:
git restore filenameमैं किसी Git रिपॉज़िटरी में सभी रिमोट ब्रांचों की सूची कैसे देखूँ?
उपयोग करें:
git branch -rमैं Git में किसी ब्रांच को फोर्स पुश कैसे करूँ?
फोर्स पुश करते समय सावधानी बरतें, क्योंकि यह रिमोट बदलावों को ओवरराइट कर देता है:
git push --force origin branch-nameमैं अपनी Git कमिट्स का ग्राफ़िकल इतिहास कैसे देखूँ?
अपनी कमिट हिस्ट्री को ग्राफ़ की तरह देखना चाहते हैं:
git log --oneline --graph --all --decorateSrujana चार-वर्षीय कंप्यूटर साइंस डिग्री के साथ एक फ्रीलांस टेक राइटर हैं। डेटा साइंस, क्लाउड कंप्यूटिंग, डेवलपमेंट, प्रोग्रामिंग, सुरक्षा, और अन्य कई विषयों पर लिखना उनके लिए स्वाभाविक है। उन्हें शास्त्रीय साहित्य से प्रेम है और नए स्थानों की खोज करना पसंद है।
