Skip to content

Git कमांड्स समझाए गए

वे Git कमांड्स जो आप सच में इस्तेमाल करते हैं, काम के हिसाब से समूहों में: रेपो सेटअप करना, काम की स्नैपशॉट लेना, ब्रांच और मर्ज करना, हिस्ट्री पढ़ना, रिमोट से साझा करना, गलतियाँ वापस लेना, काम stash करना, और फ़ाइलों व सबमॉड्यूल का प्रबंधन. हर पंक्ति कमांड के साथ एक वास्तविक उपयोग दिखाती है.

Git में सैकड़ों कमांड्स हैं, लेकिन रोज़ के काम के लिए बस कुछ ही चाहिए. मानसिक मॉडल यह है: वर्किंग ट्री आपकी फ़ाइलें हैं, इंडेक्स (स्टेजिंग एरिया) अगला कमिट है, और HEAD मौजूदा कमिट है. आप stage करते हैं, commit करते हैं, साझा करते हैं. status बार-बार पढ़ें. नीचे दी हर बात मानती है कि सूचीबद्ध कमांड पहले से मौजूद है.

रेफ़रेंस टेबल · 55 प्रविष्टियाँ
55 of 55 rows
सेटअप और कॉन्फ़िग
हर रेपो के लिए एक बार अपना नाम, ईमेल या एडिटर सेट करें.git config --global user.name "Ada"
जिस कमांड को आप अक्सर टाइप करते हैं उसके लिए शॉर्टकट नाम परिभाषित करें.git config --global alias.co checkout
मौजूदा फ़ोल्डर में नया रिपॉज़िटरी बनाएँ.git init
रिमोट रिपॉज़िटरी को अपनी मशीन पर कॉपी करें.git clone git@github.com:org/repo.git
एक ही ब्रांच के नवीनतम कमिट्स ही कॉपी करें.git clone --depth 1 --single-branch git@github.com:org/repo.git
स्नैपशॉट की मूल बातें
दिखाता है क्या staged है, क्या बदला है, क्या untracked है.git status -sb
बदलावों को stage करें ताकि वे अगले कमिट में जाएँ.git add src/app.ts
बदलावों को hunk-दर-hunk देखें और केवल मंज़ूर किए हुए stage करें.git add -p src/app.ts
हर ट्रैक की गई फ़ाइल के बदलाव stage करें, नई फ़ाइलें जोड़े बिना.git add -u
stage किए बदलावों को नए कमिट के रूप में दर्ज करें.git commit -m "fix: null check"
आख़िरी कमिट को सुधारे हुए कमिट से बदलें.git commit --amend -m "fix: handle empty input"
unstaged बदलाव दिखाता है, या --staged से staged बदलाव.git diff --staged
आख़िरी कमिट के बाद का हर बदलाव दिखाता है, staged हो या न हो.git diff HEAD
ब्रांचिंग और मर्जिंग
ब्रांच लिस्ट करें, बनाएँ या डिलीट करें.git branch feature-x
मर्ज हुई ब्रांच डिलीट करें (-D ज़बरदस्ती डिलीट करता है, -a हर ब्रांच दिखाता है).git branch -d feature-x
ब्रांच बदलें (checkout का आधुनिक विकल्प).git switch feature-x
नई ब्रांच बनाएँ और एक ही कदम में उस पर चले जाएँ.git switch -c feature-x
ब्रांच बदलें या फ़ाइलें रिस्टोर करें (पुराना, ज़्यादा व्यापक कमांड).git checkout feature-x
दूसरी ब्रांच के बदलावों को मौजूदा ब्रांच में लाएँ.git merge feature-x
कन्फ्लिक्ट वाला मर्ज रद्द करें और ब्रांच को पहले की हालत में लौटाएँ.git merge --abort
मौजूदा ब्रांच के कमिट्स को दूसरी ब्रांच के ऊपर दोबारा चलाएँ.git rebase main
कमिट्स को दोबारा चलाते समय उन्हें squash, reorder या edit करें.git rebase -i main
दूसरी ब्रांच का एक कमिट इस ब्रांच पर कॉपी करें.git cherry-pick a1b2c3d
कमिट को पढ़ने योग्य लेबल, जैसे वर्ज़न, से चिह्नित करें.git tag -a v1.2.0
दूसरी ब्रांच को उसी समय अलग फ़ोल्डर में checkout करें.git worktree add ../repo-feature feature-x
हिस्ट्री देखना
कमिट हिस्ट्री क्रम से देखें.git log --oneline --graph --decorate
सिर्फ़ मौजूदा ब्रांच नहीं, हर ब्रांच की हिस्ट्री देखें.git log --oneline --graph --all
एक कमिट का पूरा diff और संदेश दिखाता है.git show HEAD
दिखाता है कि फ़ाइल की हर पंक्ति आख़िरी बार किसने बदली.git blame src/app.ts
HEAD जिन-जिन कमिट्स को इशारा कर चुका है उन सबको दिखाएँ, फेंके हुए समेत.git reflog
हिस्ट्री को आधे-आधे हिस्सों में खोजकर वह कमिट ढूँढें जिसने कुछ तोड़ा.git bisect start
कमिट्स का लेखक-वार सारांश दिखाता है.git shortlog -sn
सबसे नज़दीकी टैग से गिनकर मौजूदा कमिट को नाम देता है.git describe --tags
रिमोट के साथ सहयोग
रिमोट रिपॉज़िटरी लिस्ट करें या जोड़ें.git remote add origin <url>
रिमोट को उनके fetch और push URL के साथ दिखाएँ.git remote -v
अपनी ब्रांच बदले बिना रिमोट बदलाव डाउनलोड करें.git fetch origin
रिमोट बदलाव डाउनलोड करें और डिलीट हुई रिमोट ब्रांच के refs हटाएँ.git fetch --prune
मौजूदा ब्रांच के रिमोट बदलाव fetch करके मर्ज करें.git pull --rebase
लोकल कमिट्स को रिमोट पर भेजें.git push -u origin feature-x
रिमोट ब्रांच को overwrite करें, पर केवल तब जब किसी ने पहले push न किया हो.git push --force-with-lease origin feature-x
बदलाव वापस लेना
वर्किंग ट्री के बदलाव फेंकें, या unstage करें.git restore src/app.ts
फ़ाइल को unstage करें पर उसकी एडिट्स वर्किंग ट्री में रहने दें.git restore --staged src/app.ts
मौजूदा ब्रांच की टिप और वैकल्पिक रूप से इंडेक्स move करें.git reset --hard HEAD~1
ऐसा नया कमिट जोड़ें जो पुराने कमिट को उलट दे (साझा करने में सुरक्षित).git revert HEAD
untracked फ़ाइलों और फ़ोल्डरों को डिलीट करें.git clean -fd
स्टैशिंग
बिना commit किया काम save करें और वर्किंग ट्री reset करें.git stash -u
आपने जितने stash सहेजे हैं सब दिखाएँ.git stash list
stash दोबारा लगाएँ और उसे स्टोर में रहने दें.git stash apply stash@{1}
जो stash अब चाहिए नहीं उसे डिलीट करें.git stash drop stash@{1}
सबसे हाल का stash दोबारा लगाएँ और हटा दें.git stash pop
फ़ाइलें और सबमॉड्यूल
फ़ाइल move या rename करें और बदलाव stage करें.git mv old.ts src/new.ts
फ़ाइल डिलीट करें और डिलीशन stage करें.git rm src/old.ts
दूसरे रिपॉज़िटरी को इसके अंदर फ़ोल्डर की तरह ट्रैक करें.git submodule add git@github.com:org/lib.git lib
बड़े रिपॉज़िटरी से केवल नाम लिए फ़ोल्डर ही checkout करें.git sparse-checkout set src docs
कमिट के ट्री को tar या zip फ़ाइल के रूप में export करें.git archive -o repo.zip HEAD