मुख्य सामग्री पर जाएं

सभी स्तरों के लिए शीर्ष 25 Git इंटरव्यू प्रश्न और उत्तर

टेक्निकल इंटरव्यू में अक्सर आने वाले Git कमांड्स, अवधारणाएँ और तुलनाएँ फिर से दोहराएँ
अद्यतन 2 जून 2026  · 13 मि॰ पढ़ना

Git आधुनिक डेवलपर के टूलकिट का एक आवश्यक उपकरण है, जो अपनी शक्तिशाली वर्ज़न कंट्रोल क्षमताओं के लिए प्रसिद्ध है। 2005 में Linus Torvalds द्वारा Linux kernel के विकास को समर्थित करने के लिए बनाया गया, Git तब से दुनिया भर में अनगिनत सॉफ्टवेयर प्रोजेक्ट्स की रीढ़ बन चुका है। प्रोजेक्ट वर्ज़न्स को प्रबंधित करने में इसकी दक्षता और लचीलापन, तथा सहयोग के लिए मजबूत समर्थन, इसे हर आकार की टीमों के लिए अनिवार्य बनाते हैं।

यह लेख तकनीकी इंटरव्यू की तैयारी में आपकी मदद करने के लिए शुरुआती से उन्नत स्तर तक फैले शीर्ष 20 Git इंटरव्यू प्रश्नों को कवर करता है। चाहे आप Git के नए उपयोगकर्ता हों या अपनी समझ को गहरा करना चाहते हों, ये प्रश्न और उत्तर आपकी दक्षता प्रदर्शित करने और इंटरव्यू में सफल होने में मदद करेंगे।

बेसिक Git इंटरव्यू प्रश्न

यदि आप Git के अपेक्षाकृत नए उपयोगकर्ता हैं, तो संभव है कि कुछ बुनियादी इंटरव्यू प्रश्न शुरुआती अवधारणाओं और उपयोगों पर केंद्रित हों। यदि आपको इन पर पुनरावलोकन करने की आवश्यकता है, तो DataCamp का Introduction to Git कोर्स ज़रूर देखें।

Git रिपॉज़िटरी क्या है?

एक Git रिपॉज़िटरी किसी प्रोजेक्ट की फाइलें और संशोधन इतिहास संग्रहीत करती है और समय के साथ किए गए परिवर्तनों को ट्रैक करके वर्ज़न कंट्रोल को सुगम बनाती है। यह आपके डिवाइस पर किसी फ़ोल्डर में लोकल रूप से या GitHub जैसे ऑनलाइन प्लेटफॉर्म पर हो सकती है। इससे उपयोगकर्ता सहयोग कर सकते हैं, पूर्व संस्करणों पर लौट सकते हैं और commit, push, तथा pull जैसे कमांड्स का उपयोग करके प्रोजेक्ट विकास को कुशलतापूर्वक प्रबंधित कर सकते हैं।

Git कैसे काम करता है?

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

git add क्या है?

git add कमांड का उपयोग अगले कमिट में शामिल करने के लिए बदलावों को स्टेज करने के लिए किया जाता है। यह वर्किंग डायरेक्टरी में फाइलों में किए गए संशोधनों, जोड़ या हटाने को तैयार करता है, और उन्हें आने वाले कमिट स्नैपशॉट में शामिल करने के लिए चिह्नित करता है। ध्यान दें, यह कमांड वास्तव में बदलावों को कमिट नहीं करता, बल्कि उन्हें स्टेजिंग के लिए तैयार करता है।

git push क्या है?

git push कमांड का उपयोग लोकल रिपॉज़िटरी की सामग्री को रिमोट रिपॉज़िटरी पर अपलोड करने के लिए किया जाता है। यह लोकल रिपॉज़िटरी से कमिट किए गए परिवर्तनों को किसी रिमोट पर स्थानांतरित करता है, आमतौर पर GitHub या GitLab जैसे सर्वर पर। यह कमांड उपयोगकर्ताओं को अपने बदलाव साझा करने की सुविधा देकर सहयोग को सक्षम बनाता है।

हमारे अलग ट्यूटोरियल में Git push और pull के बारे में अधिक जानें।

git status क्या है?

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

Git में commit क्या होता है?

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

प्रत्येक कमिट एक अद्वितीय पहचानकर्ता बनाता है, जिससे आप रिपॉज़िटरी में परिवर्तनों के इतिहास को ट्रैक कर सकते हैं। कमिट्स वर्ज़न कंट्रोल में अहम भूमिका निभाते हैं, क्योंकि वे प्रोजेक्ट की पूर्व अवस्थाओं पर लौटने, परिवर्तनों के इतिहास की समीक्षा करने और अपडेट साझा करके दूसरों के साथ सहयोग करने का तरीका प्रदान करते हैं।

Git चीट शीट

इंटरव्यू तैयारी में मदद के लिए DataCamp की Git चीट शीट देखें

Git में ब्रांचिंग क्या है?

ब्रांचिंग का अर्थ मुख्य विकास रेखा (आमतौर पर main कहलाती है और पहले master कहलाती थी) से अलग होकर नई फीचर्स, फिक्स या प्रयोगों पर बिना मुख्य कोडबेस को प्रभावित किए काम करना है। इससे एक ही रिपॉज़िटरी में कई समानांतर विकास रेखाएं सह-अस्तित्व में रह सकती हैं।

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

Git में कॉन्फ्लिक्ट क्या होता है?

कॉन्फ्लिक्ट तब उत्पन्न होते हैं जब अलग-अलग योगदानकर्ताओं द्वारा किसी फाइल के एक ही भाग में परस्पर-विरोधी बदलाव किए जाते हैं, आमतौर पर merge या rebase के दौरान। Git इन विरोधी बदलावों को स्वतः सुलझा नहीं सकता, इसलिए असंगतियों को सुलझाने के लिए उपयोगकर्ता को मैन्युअल हस्तक्षेप करना पड़ता है।

कॉनफ्लिक्ट सुलझाने के लिए प्रभावित फाइल खोलें — Git विरोधी खंडों को <<<<<<<, =======, और >>>>>>> मार्कर्स से चिह्नित करेगा। सही संस्करण रखते हुए फाइल संपादित करें, मार्कर्स हटाएँ, फिर:

git add <resolved-file>
git commit
VS Code, IntelliJ जैसे टूल और git mergetool इस प्रक्रिया को दृश्य और नेविगेट करना आसान बना सकते हैं।

Git में merge क्या है?

Merging Git में एक मौलिक ऑपरेशन है जो किसी प्रोजेक्ट में अलग-अलग ब्रांचों के बीच सहयोग और परिवर्तनों के एकीकरण की सुविधा देता है। विशेष रूप से, merge विभिन्न ब्रांचों से परिवर्तनों को एक ही ब्रांच (आमतौर पर master या main) में संयोजित करने की प्रक्रिया है।

एक merge किसी ब्रांच में किए गए परिवर्तनों को दूसरी ब्रांच के साथ एकीकृत करता है, जिसके परिणामस्वरूप एक नया कमिट बनता है जो दोनों ब्रांचों के इतिहासों को संयोजित करता है। आप हमारे अलग ट्यूटोरियल में Git में merge कॉन्फ्लिक्ट कैसे सुलझाएँ के बारे में और जान सकते हैं।

इंटरमीडिएट Git इंटरव्यू प्रश्न

Git में remote क्या होता है?

Remote एक रिपॉज़िटरी है जो किसी सर्वर या अन्य कंप्यूटर पर होस्ट की जाती है ताकि दूसरों के साथ सहयोग और कोड साझा किया जा सके। यह एक केंद्रीकृत स्थान के रूप में कार्य करता है जहाँ डेवलपर अपने लोकल बदलाव push कर सकते हैं और दूसरों द्वारा किए गए बदलाव pull कर सकते हैं।

Remotes आमतौर पर GitHub, GitLab या Bitbucket जैसे होस्टिंग प्लेटफॉर्म पर सेट किए जाते हैं, और वे वितरित विकास को सक्षम करते हैं तथा कई योगदानकर्ताओं के बीच प्रोजेक्ट कोड को संग्रहीत और सिंक्रनाइज़ करने के लिए एक साझा स्थान प्रदान करके टीमवर्क को सुगम बनाते हैं।

किसी ऐसे कमिट को कैसे revert करें जिसे पहले ही push किया जा चुका है और सार्वजनिक हो चुका है?

git revert <commit-hash> कमांड का उपयोग किसी ऐसे कमिट को revert करने के लिए किया जा सकता है जिसे पहले ही push किया जा चुका है और सार्वजनिक हो चुका है।

चरण-दर-चरण प्रक्रिया इस प्रकार है:

1. उस कमिट की पहचान करें जिसे आप revert करना चाहते हैं, उसके कमिट हैश को ढूँढकर। यह git log कमांड से कमिट इतिहास देखकर और इच्छित कमिट हैश ढूँढकर किया जा सकता है।

2. कमिट हैश मिलने के बाद, git revert कमांड को कमिट हैश के साथ चलाएँ ताकि निर्दिष्ट कमिट द्वारा लाए गए परिवर्तनों को रद्द करने वाला नया कमिट बन सके। उदाहरण के लिए:

git revert <commit-hash>

3. Git revert के लिए कमिट संदेश बनाने हेतु एक टेक्स्ट एडिटर खोलेगा। आवश्यकता हो तो संदेश संपादित करें, फिर एडिटर को सेव और बंद कर दें।

4. कमिट संदेश सेव करने के बाद, Git एक नया कमिट बनाएगा जो प्रभावी रूप से निर्दिष्ट कमिट द्वारा किए गए परिवर्तनों को रद्द करता है। यह नया कमिट इतिहास में जुड़ जाएगा, और मूल कमिट के बदलावों को प्रभावी रूप से वापस ले लेगा।

5. अंत में, निम्न कमांड का उपयोग करके नए कमिट को रिमोट रिपॉज़िटरी पर push करें ताकि revert सार्वजनिक हो सके:

git push origin <branch-name> 

git revert का उपयोग एक नया कमिट बनाता है जो मूल कमिट द्वारा किए गए परिवर्तनों को रद्द करता है, जिससे कमिट हिस्ट्री बदले बिना बदलाव वापस लिए जा सकते हैं। यह तरीका git reset या git amend से अधिक सुरक्षित है, जो कमिट इतिहास को बदल सकते हैं और उन सहयोगियों के लिए समस्याएँ पैदा कर सकते हैं जिन्होंने पहले ही बदलाव pull कर लिए हैं।

git stash क्या है?

git stash एक Git कमांड है जो वर्किंग डायरेक्टरी में ऐसे परिवर्तनों को अस्थायी रूप से संग्रहीत करता है जो कमिट करने के लिए तैयार नहीं हैं। यह डेवलपर्स को अपनी मॉडिफिकेशन्स को रिपॉज़िटरी में कमिट किए बिना सहेजने की अनुमति देता है।

Stashing तब उपयोगी है जब आप ब्रांच स्विच कर रहे हों, लेकिन आप अपने बदलावों को कमिट नहीं करना चाहते या उन्हें खोना नहीं चाहते। बाद में, आप स्टैश किए गए बदलावों को अपनी वर्किंग डायरेक्टरी पर लागू कर सकते हैं या स्टैश स्टैक से पॉप करके उन पर काम जारी रख सकते हैं।

git reflog क्या है?

git reflog एक Git कमांड है जिसका उपयोग रेफरेंस लॉग्स देखने के लिए किया जाता है, जो HEAD पॉइंटर में हुए परिवर्तनों और रिपॉज़िटरी में चेकआउट किए गए कमिट्स के इतिहास को रिकॉर्ड करता है। यह रिपॉज़िटरी में हाल में किए गए कार्यों की कालानुक्रमिक सूची प्रदान करता है, जिनमें कमिट्स, चेकआउट्स, merges और resets शामिल हैं।

Reflog खोए हुए कमिट्स या ब्रांचों को रिकवर करने और रिपॉज़िटरी में किए गए कार्यों के क्रम को समझने में सहायक होता है।

मौजूदा Git ब्रांच को किसी रिमोट ब्रांच को ट्रैक करने के लिए कैसे सेट करें?

किसी मौजूदा Git ब्रांच को रिमोट ब्रांच को ट्रैक करने के लिए, आप git branch कमांड के साथ --set-upstream-to या -u विकल्प का उपयोग कर सकते हैं, इसके बाद रिमोट ब्रांच का नाम दें।

सिंटैक्स इस प्रकार होगा:

git branch --set-upstream-to=<remote-name>/<branch-name>

या

git branch -u <remote-name>/<branch-name>

एडवांस्ड Git इंटरव्यू प्रश्न

Git में अलग-अलग प्रोजेक्ट्स के लिए कई कॉन्फ़िगरेशन कैसे प्रबंधित करते हैं?

विभिन्न कॉन्फ़िगरेशन्स को संभालने के लिए, git config कमांड को --global, --system, या --local फ्लैग्स के साथ उपयोग करें ताकि अलग-अलग स्तरों पर सेटिंग्स समायोजित की जा सकें। वैकल्पिक रूप से, Git कॉन्फ़िगरेशन में includeIf का उपयोग करें ताकि रिपॉज़िटरी के पाथ के आधार पर विशिष्ट सेटअप शामिल किए जा सकें।

Git के साथ बड़े फाइलों को कैसे हैंडल करते हैं?

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

git submodule का क्या उपयोग है और इसे कैसे अपडेट करते हैं?

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

Git में किसी सबमॉड्यूल को अपडेट करने के लिए, आप निम्न चरणों का उपयोग कर सकते हैं:

  1. अपनी मुख्य रिपॉज़िटरी के भीतर सबमॉड्यूल की डायरेक्टरी में जाएँ।

  2. git fetch का उपयोग करके सबमॉड्यूल की रिमोट रिपॉज़िटरी से नवीनतम बदलाव fetch करें।

  3. यदि आप सबमॉड्यूल द्वारा ट्रैक की जा रही ब्रांच के नवीनतम कमिट पर अपडेट करना चाहते हैं, तो git pull का उपयोग करें।

  4. वैकल्पिक रूप से, यदि आप किसी विशिष्ट कमिट या ब्रांच पर अपडेट करना चाहते हैं, तो इच्छित कमिट हैश या ब्रांच नाम के साथ git checkout का उपयोग करें।

  5. सबमॉड्यूल को इच्छित स्थिति में अपडेट करने के बाद, अपडेटेड सबमॉड्यूल स्टेट को दर्शाने के लिए मुख्य रिपॉज़िटरी में इन परिवर्तनों को कमिट करें।

git cherry-pick क्या है और इसे कब उपयोग करेंगे?

git cherry-pick आपको किसी विशिष्ट कमिट को एक ब्रांच से दूसरी ब्रांच पर लागू करने देता है, बिना पूरी ब्रांच को मर्ज किए।

git cherry-pick <commit-hash>
 
एक सामान्य उपयोग-मामला किसी बग फिक्स को बैक-पोर्ट करना है। मान लीजिए आपका बग main ब्रांच पर ठीक हो गया है लेकिन आपको वही फिक्स release ब्रांच में भी चाहिए — आप main की पूरी ब्रांच को मर्ज करने के बजाय सिर्फ उसी कमिट को चेरी-पिक कर सकते हैं और उसे release में लागू कर सकते हैं।

यह तब भी उपयोगी है जब कोई कमिट गलती से गलत ब्रांच पर हो गया हो: उसे सही ब्रांच पर चेरी-पिक करें, फिर जहाँ नहीं होना चाहिए था वहाँ से उसे revert कर दें।

git bisect क्या है और इसका उपयोग किस लिए होता है?

git bisect एक डिबगिंग टूल है जो बाइनरी सर्च का उपयोग करके उस विशिष्ट कमिट को ढूँढता है जिसने बग को पेश किया। एक-एक करके कमिट्स को मैन्युअल रूप से चेकआउट करने के बजाय, आप Git को बताते हैं कि कौन सा कमिट "good" (बग-मुक्त) है और कौन सा "bad" (जिसमें बग है), और Git बीच के कमिट्स को चेकआउट करता है, हर बार खोज-स्थान को आधा करते हुए, जब तक कि दोषी कमिट न मिल जाए।

git bisect start
git bisect bad                # वर्तमान कमिट में बग है
git bisect good <commit-hash> # यह पुराना कमिट ठीक था
# Git बीच का एक कमिट चेकआउट करेगा; आप उसे टेस्ट करें, फिर:
git bisect good   # या git bisect bad
# दोहराएँ जब तक Git पहला खराब कमिट पहचान न ले
git bisect reset  # काम पूरा होने पर मूल स्थिति पर लौटें

सैकड़ों कमिट्स वाली बड़ी रिपॉज़िटरीज़ में यह मैन्युअल खोज से कहीं तेज़ है।

Git hooks क्या हैं और उनका उपयोग कैसे किया जाता है?

Git hooks ऐसे स्क्रिप्ट्स हैं जो Git वर्कफ़्लो के विशिष्ट बिंदुओं पर स्वतः चलती हैं। ये रिपॉज़िटरी की .git/hooks/ डायरेक्टरी में रहती हैं और किसी भी स्क्रिप्टिंग भाषा में लिखी जा सकती हैं।

दो प्रकार हैं:

  • क्लाइंट-साइड hooks आपकी लोकल मशीन पर चलती हैं — जैसे pre-commit (कमिट बनने से पहले चलती है) या commit-msg (कमिट संदेश के फ़ॉर्मेट को वैलिडेट करती है)।

  • सर्वर-साइड hooks रिमोट सर्वर पर चलती हैं — जैसे pre-receive (पुश किए गए कमिट्स स्वीकार होने से पहले चलती है)।

एक सामान्य उपयोग pre-commit hook का उपयोग करके कमिट की अनुमति देने से पहले स्वतः लिंटर या टेस्ट सूट चलाना है। यह टीम में कोड क्वालिटी मानकों को लागू करता है।

ध्यान दें कि किसी रिपॉज़िटरी को क्लोन करने पर hooks कॉपी नहीं होते, इसलिए जो टीमें उन पर निर्भर करती हैं, वे आमतौर पर उन्हें एक अलग स्क्रिप्ट या pre-commit (Python पैकेज) जैसे टूल के माध्यम से साझा करती हैं।

अक्सर भ्रमित करने वाली Git अवधारणाओं पर प्रश्न

git fetch और git pull में क्या अंतर है?

git fetch और git pull के बीच मुख्य अंतर उनके कार्य और वे लोकल रिपॉज़िटरी को कैसे अपडेट करते हैं, में निहित है।

git fetch कमांड रिमोट रिपॉज़िटरी से बदलावों को लोकल रिपॉज़िटरी में लाता है। यह लोकल रिपॉज़िटरी में रिमोट-ट्रैकिंग ब्रांचों (जैसे origin/master) को रिमोट की स्थिति के अनुसार अपडेट करता है, लेकिन वर्किंग डायरेक्टरी को अपडेट नहीं करता और न ही किसी बदलाव को वर्तमान ब्रांच में मर्ज करता है। यानी fetch करने के बाद, आप रिमोट में हुए बदलावों की समीक्षा कर सकते हैं, बिना आपके लोकल काम को प्रभावित किए।

git pull कमांड भी रिमोट रिपॉज़िटरी से बदलाव लाता है, लेकिन यह एक कदम आगे जाकर एक ही चरण में fetch और उन्हें वर्तमान ब्रांच में मर्ज कर देता है। मूल रूप से यह git fetch के बाद git merge करता है ताकि रिमोट के बदलावों को वर्तमान ब्रांच में शामिल किया जा सके।

git reset क्या करता है?

git reset कमांड वर्तमान HEAD को निर्दिष्ट स्थिति पर रीसेट करता है। यानी इसका उपयोग परिवर्तनों को वापस लेने, फाइलों को अनस्टेज करने या HEAD पॉइंटर को किसी अन्य कमिट पर ले जाने के लिए किया जा सकता है। ध्यान दें, git reset के तीन मुख्य मोड होते हैं:

  • --soft: HEAD पॉइंटर को किसी विशेष कमिट पर रीसेट करता है, और बदलावों को स्टेज्ड रखता है। फाइलें वर्किंग डायरेक्टरी में मॉडिफाइड रहती हैं, जिससे आप उन्हें पुनः कमिट कर सकते हैं।
  • --mixed: HEAD पॉइंटर को किसी विशेष कमिट पर रीसेट करता है, और बदलावों को अनस्टेज कर देता है। फाइलें वर्किंग डायरेक्टरी में मॉडिफाइड रहती हैं, लेकिन बदलाव कमिट के लिए स्टेज नहीं होते।
  • --hard: HEAD पॉइंटर को किसी विशेष कमिट पर रीसेट करता है, और वर्किंग डायरेक्टरी तथा स्टेजिंग एरिया में सभी बदलावों को त्याग देता है। सावधानी से उपयोग करें, क्योंकि यह अनकमिटेड बदलावों को स्थायी रूप से हटा देता है।

महत्वपूर्ण: जिस कमिट को साझा रिमोट ब्रांच पर पहले ही push किया जा चुका है, उस पर कभी भी git reset --hard का उपयोग न करें। यह इतिहास को फिर से लिखता है और उन साथियों के लिए गंभीर समस्याएँ पैदा करेगा जिन्होंने पहले ही वे कमिट्स pull कर लिए हैं। सार्वजनिक कमिट्स के लिए इसके बजाय git revert का उपयोग करें।

git push --force-with-lease का महत्व git push --force की तुलना में क्या है?

git push --force-with-lease रिमोट रिपॉज़िटरी पर फोर्स-पुश करने का git push --force की तुलना में अधिक सतर्क तरीका है, क्योंकि यह रिमोट रिपॉज़िटरी पर दूसरों द्वारा किए गए परिवर्तनों को अनजाने में ओवरराइट होने से रोकता है।

जब आप git push --force का उपयोग करते हैं, तो आप इस बात की परवाह किए बिना अपने बदलाव रिमोट पर फोर्स-पुश कर देते हैं कि आपकी पिछली fetch के बाद किसी और ने उसे अपडेट किया है या नहीं। इससे अन्य डेवलपर्स के काम के अनजाने नुकसान का खतरा होता है।

इसके विपरीत, git push --force-with-lease अधिक सुरक्षित विकल्प है। यह जाँचता है कि आपकी पिछली fetch के बाद जिस रिमोट ब्रांच पर आप push कर रहे हैं, क्या वह किसी और द्वारा अपडेट की गई है। यदि रिमोट ब्रांच अपडेट हो चुकी है, तो push अस्वीकार कर दिया जाता है, जिससे आप अनजाने में दूसरों के बदलावों को ओवरराइट नहीं कर पाते।

git rebase क्या है, और यह git merge से कैसे अलग है?

git rebase और git merge दोनों एक ब्रांच के बदलावों को दूसरी में एकीकृत करते हैं, लेकिन अलग-अलग तरीकों से।

  • git merge दो ब्रांचों के इतिहासों को एक नए "मर्ज कमिट" बनाकर संयोजित करता है। यह इस पूरे इतिहास को संरक्षित करता है कि ब्रांचें कब अलग हुईं और कब फिर साथ आईं, जो ऑडिट ट्रेल्स और टीम की पारदर्शिता के लिए उपयोगी है।

  • git rebase किसी एक ब्रांच के कमिट्स को दूसरी के ऊपर ले जाकर या फिर से चलाकर एक साफ, रैखिक (linear) कमिट हिस्ट्री बनाता है, जिसमें मर्ज कमिट्स नहीं होते। इससे लॉग पढ़ना आसान हो जाता है, लेकिन यह कमिट इतिहास को फिर से लिखता है। यही कारण है कि rebase का स्वर्ण नियम है: कभी भी ऐसी ब्रांच को rebase न करें जिस पर अन्य लोग काम कर रहे हों

git clone और git fork में क्या अंतर है?

Cloning आपके मशीन पर किसी रिमोट रिपॉज़िटरी की लोकल कॉपी बनाता है। आप उसी रिपॉज़िटरी से जुड़े रहते हैं और (यदि अनुमति है) उस पर बदलाव push कर सकते हैं।

git clone https://github.com/user/repo.git
Forking किसी और की रिपॉज़िटरी की सर्वर-साइड कॉपी आपके अपने अकाउंट के तहत बनाता है — आमतौर पर GitHub या GitLab पर। आप फोर्क के मालिक होते हैं और उस पर स्वतंत्र रूप से push कर सकते हैं। जब आपके बदलाव तैयार हों, तो आप मूल रिपॉज़िटरी पर एक pull request सबमिट करते हैं।

ओपन-सोर्स प्रोजेक्ट्स में योगदान देने के लिए, जहाँ आपके पास मूल repo पर सीधा write एक्सेस नहीं होता, forking मानक वर्कफ़्लो है।

Git इंटरव्यू की तैयारी

इंटरव्यू के दौरान अपना Git ज्ञान और अनुभव प्रस्तुत करना, वर्ज़न कंट्रोल और सॉफ्टवेयर विकास टीमों में सहयोग की आपकी दक्षता को प्रदर्शित करने के लिए महत्वपूर्ण है।

आइए कुछ सुझावों पर नज़र डालें जिन्हें आपको अपनी तकनीकी इंटरव्यू तैयारी के दौरान अपनाना चाहिए, ताकि आप अपने Git कौशल प्रभावी ढंग से संप्रेषित कर सकें:

Git की बुनियादी बातें समझें

रिपॉज़िटरीज़, ब्रांचिंग, मर्जिंग, कमिट्स और pull, push, clone और commit जैसे बुनियादी कमांड्स सहित Git की बुनियादी बातों की ठोस समझ सुनिश्चित करें। यह आधारभूत ज्ञान इंटरव्यू के दौरान आपकी चर्चा की नींव बनेगा। साथ ही, वर्ज़न कंट्रोल जैसे आवश्यक सिद्धांतों और Git व अन्य वर्ज़न कंट्रोल सिस्टम्स के बीच अंतर को अच्छी तरह समझना भी उपयोगी है।

अंत में, Git Flow, GitHub Flow और GitLab Flow जैसी विविध Git कार्यप्रणालियों से परिचित हों। प्रत्येक दृष्टिकोण के फायदे और कमियों का आकलन करें और उन स्थितियों को समझें जहाँ वे सबसे अधिक लाभकारी हैं।

हमारा Git पर पूर्ण गाइड बुनियादी बातों से परिचित होने के लिए एक अच्छा शुरुआती बिंदु है।

हैंड्स-ऑन अनुभव प्राप्त करें

जितना अधिक आप Git का उपयोग करेंगे, उतना ही आपका ज्ञान सुदृढ़ होगा। नियमित अभ्यास आपको विभिन्न कमांड्स और प्रक्रियाओं से अधिक परिचित कराता है। अधिक एक्सपोज़र पाने के लिए Git को अपने दैनिक वर्कफ़्लो में शामिल करने का प्रयास करें। ब्रांच बनाकर, उन्हें मर्ज करके और कॉन्फ्लिक्ट सुलझाकर ज़रूर प्रयोग करें।

यदि आप सुनिश्चित नहीं हैं कि Git के साथ हैंड्स-ऑन अनुभव पाने के लिए किन प्रोजेक्ट्स पर काम करें, तो GitHub जैसे प्लेटफ़ॉर्म के माध्यम से ओपन-सोर्स प्रोजेक्ट्स में भाग लेना उद्योग-मानक सहयोग टूल्स और वर्कफ़्लोज़ का प्रत्यक्ष अनुभव पाने का शानदार तरीका है।

सामान्य समस्याएँ और उनका ट्रबलशूटिंग सीखें

Git का उपयोग करते समय समस्याएँ आना तय है। कुछ सामान्य समस्याओं में merge कॉन्फ्लिक्ट्स, detached HEAD स्टेट, बदलावों को revert करना और खोए हुए कमिट्स को रिकवर करना शामिल हैं। Git समस्याओं का निदान करने से ट्रबलशूटिंग कौशल में सुधार होता है और Git के अंतर्निहित तंत्रों की गहरी समझ विकसित होती है।

त्रुटि संदेशों का सक्रिय रूप से ट्रबलशूटिंग और विश्लेषण करके, आप Git के आंतरिक कामकाज में अंतर्दृष्टि प्राप्त करेंगे और समस्याओं की पहचान और समाधान करने में दक्षता विकसित करेंगे। यह सक्रिय दृष्टिकोण संभावित जोखिमों को कम करता है और वर्ज़न कंट्रोल वर्कफ़्लो को प्रबंधित करने में आत्मविश्वास और विशेषज्ञता को प्रभावी ढंग से विकसित करता है।

मॉक इंटरव्यू का अभ्यास करें

मॉक इंटरव्यू में शामिल होकर, उम्मीदवार अपने Git ज्ञान और संचार कौशल में कमज़ोरियों की पहचान कर सकते हैं, जिससे वे अपनी तैयारी के प्रयासों पर प्रभावी ढंग से ध्यान केंद्रित कर सकें।

इसके अतिरिक्त, मॉक इंटरव्यू उम्मीदवारों को वास्तविक Git-संबंधित परिदृश्यों और कोडिंग अभ्यासों का सामना करके अपनी समस्या-समाधान क्षमताओं को परिष्कृत करने के मूल्यवान अवसर प्रदान करते हैं। यह हैंड्स-ऑन अभ्यास उम्मीदवारों को अपने Git कौशल में आत्मविश्वास विकसित करने और इंटरव्यू के दौरान अपने विचारों को स्पष्ट रूप से व्यक्त करने की क्षमता बढ़ाने में मदद करता है।

निष्कर्ष

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

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

अधिक सीखने के लिए, निम्न संसाधन देखें:

विषय

आज ही अपनी Git यात्रा जारी रखें!

Track

डेटा इंजीनियर में Python

40 घंटा
डेटा इंजीनियरिंग क्षेत्र में आपको अलग पहचान दिलाने के लिए, डेटा को कुशलतापूर्वक ingest, clean, manage करने, और pipelines को schedule व monitor करने के लिए मांग में रहने वाले कौशल हासिल करें।
विस्तृत जानकारी देखेंRight Arrow
कोर्स शुरू करें
और देखेंRight Arrow