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