Git कमांड चीटशीट

कीवर्ड (branch, commit, rebase, stash...) से कोई Git कमांड तुरंत खोजें, श्रेणी के अनुसार सजी हुई, और हर कमांड को सीधे अपने टर्मिनल में चिपकाने के लिए कॉपी बटन के साथ।

शुरू करें

git init
मौजूदा फ़ोल्डर में नई Git रिपॉज़िटरी बनाता है।
git clone <url>
किसी रिमोट रिपॉज़िटरी को नए लोकल फ़ोल्डर में क्लोन करता है।
git config --global user.name "Nom"
कमिट के लिए ग्लोबल लेखक का नाम तय करता है।
git config --global user.email "email"
कमिट के लिए ग्लोबल लेखक का ईमेल तय करता है।

स्थिति और इतिहास

git status
बदली हुई, जोड़ी गई या अनट्रैक्ड फ़ाइलें दिखाता है।
git log
कमिट का इतिहास दिखाता है।
git log --oneline --graph --all
ब्रांच ग्राफ़ के साथ संक्षिप्त इतिहास दिखाता है।
git diff
स्टेज न किए गए बदलाव दिखाता है।
git diff --staged
पहले से स्टेज किए गए बदलाव दिखाता है।
git show <commit>
किसी ख़ास कमिट का ब्योरा दिखाता है।

संपादित करें

git add <fichier>
एक फ़ाइल को staging area में जोड़ता है।
git add -A
सभी बदली, जोड़ी और हटाई गई फ़ाइलें जोड़ता है।
git commit -m "message"
स्टेज की गई फ़ाइलों के साथ एक कमिट बनाता है।
git commit --amend
आख़िरी कमिट में बदलाव करता है (संदेश और/या सामग्री)।
git restore <fichier>
किसी फ़ाइल के स्टेज न किए गए बदलाव रद्द करता है।
git restore --staged <fichier>
बदलाव गँवाए बिना किसी फ़ाइल को staging area से हटाता है।
git rm <fichier>
एक फ़ाइल हटाता है और उस हटाने को स्टेज कर देता है।

शाखाएँ

git branch
लोकल ब्रांच की सूची दिखाता है।
git branch <nom>
नई ब्रांच बनाता है।
git switch <branche>
सक्रिय ब्रांच बदलता है।
git switch -c <branche>
ब्रांच बनाता है और तुरंत उस पर स्विच हो जाता है।
git branch -d <branche>
पहले से मर्ज हो चुकी लोकल ब्रांच हटाता है।
git branch -D <branche>
किसी लोकल ब्रांच को ज़बरदस्ती हटाता है, भले ही वह मर्ज न हुई हो।

मर्ज और रिबेस

git merge <branche>
किसी ब्रांच को मौजूदा ब्रांच में मर्ज करता है।
git rebase <branche>
मौजूदा ब्रांच के कमिट को किसी दूसरे आधार पर दोबारा लगाता है।
git rebase -i HEAD~n
आख़िरी n कमिट का इंटरैक्टिव रिबेस (क्रम बदलना, squash करना...)।
git cherry-pick <commit>
किसी ख़ास कमिट को मौजूदा ब्रांच पर लागू करता है।

रिमोट

git remote -v
कॉन्फ़िगर की गई रिमोट रिपॉज़िटरी की सूची दिखाता है।
git fetch
रिमोट के रेफ़रेंस को मर्ज किए बिना ले आता है।
git pull
रिमोट के बदलाव लाता है और उन्हें मर्ज करता है।
git push
लोकल कमिट को रिमोट रिपॉज़िटरी में भेजता है।
git push -u origin <branche>
एक ब्रांच भेजता है और उसे ट्रैकिंग ब्रांच के रूप में जोड़ देता है।
git push --force-with-lease
सामान्य --force से ज़्यादा सुरक्षित तरीक़े से ज़बरदस्ती पुश करता है।

रद्द करें

git reset --soft HEAD~1
आख़िरी कमिट रद्द करता है और बदलावों को स्टेज किया हुआ रखता है।
git reset --mixed HEAD~1
आख़िरी कमिट रद्द करता है और बदलावों को स्टेज किए बिना रखता है।
git reset --hard HEAD~1
आख़िरी कमिट रद्द करता है और उसके बदलाव हमेशा के लिए खो देता है।
git revert <commit>
एक नया कमिट बनाता है जो किसी पिछले कमिट के असर को पलट देता है।

अस्थायी भंडारण (stash)

git stash
चल रहे बदलावों को अस्थायी रूप से किनारे रख देता है।
git stash pop
आख़िरी stash दोबारा लागू करता है और उसे सूची से हटा देता है।
git stash list
सहेजे गए stash की सूची दिखाता है।

लेबल

git tag
मौजूदा टैग की सूची दिखाता है।
git tag -a v1.0.0 -m "message"
एनोटेटेड टैग बनाता है।
git push origin --tags
सभी लोकल टैग को रिमोट रिपॉज़िटरी में भेजता है।

यह कैसे काम करता है

लगभग चालीस प्रचलित Git कमांड श्रेणी के अनुसार रखे गए हैं (शुरुआत, स्थिति और इतिहास, ब्रांच, मर्ज और रिबेस, रिमोट, पूर्ववत करना, stash, टैग)। सर्च बार में कोई कीवर्ड लिखें — कमांड का नाम (rebase), कोई अवधारणा ("पूर्ववत करना", "मर्ज करना") या श्रेणी — और सूची तुरंत फ़िल्टर हो जाएगी, फिर मनचाही कमांड के बगल में "कॉपी करें" पर क्लिक करके उसे सीधे अपने टर्मिनल में चिपकाएँ।

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

git fetch रिमोट रिपॉज़िटरी के नए रेफ़रेंस डाउनलोड करता है, आपकी लोकल ब्रांच को बदले बिना, जिससे आपको बदलाव शामिल करने से पहले उन्हें जाँचने का समय मिलता है। git pull वही काम करता है और फिर इन बदलावों को अपने आप आपकी मौजूदा ब्रांच में मर्ज (या कॉन्फ़िगरेशन के अनुसार रिबेस) कर देता है।

git revert की जगह git reset कब इस्तेमाल करें?

ऐसी ब्रांच का इतिहास दोबारा लिखने के लिए git reset इस्तेमाल करें जो अभी साझा नहीं हुई है (या टीम के साथ तालमेल बिठाकर सावधानी से), और पहले से पुश हो चुके तथा संभवतः दूसरों द्वारा इस्तेमाल किए जा रहे कमिट को साफ़-सुथरे ढंग से रद्द करने के लिए git revert, क्योंकि यह मौजूदा इतिहास को दोबारा लिखे बिना एक नया रद्द करने वाला कमिट जोड़ता है।

यह चीटशीट पूरी तरह स्टैटिक है और पेज लोड होने के बाद ऑफ़लाइन भी काम करती है: कोई डेटा सर्वर पर नहीं भेजा जाता, आपकी खोज भी नहीं।