सामग्री पर जाएं
GitTree

गिट मूल बातें

Git GUI बनाम कमांड लाइन: जब प्रत्येक बेहतर है, और दोनों का उपयोग कैसे करें

Git GUI बनाम CLI प्रश्न का एक ईमानदार उत्तर: प्रत्येक क्या सबसे अच्छा करता है, प्रत्येक कहाँ कम पड़ता है, और कमांड लाइन खोए बिना दोनों का उपयोग कैसे करें।

द्वारा लिखित Kodmoraअद्यतन किया गया 13 मिनट पढ़ा
अंतर्निहित टर्मिनल को कमिट ग्राफ़ के अंतर्गत GitTree में डॉक किया गया

गिट जीयूआई बनाम कमांड लाइन एक विजेता वाली प्रतियोगिता नहीं है। कमांड लाइन स्वचालन, स्क्रिप्ट, सर्वर और बिना बटन वाले दुर्लभ विकल्प के लिए बेहतर है। Git GUI इतिहास को पढ़ने, किसी फ़ाइल के भाग को व्यवस्थित करने, विवादों को हल करने और यह देखने के लिए बेहतर है कि इसे चलाने से पहले एक जोखिम भरा ऑपरेशन क्या बदल जाएगा। इसलिए यदि आप पूछ रहे हैं कि "क्या मुझे Git GUI का उपयोग करना चाहिए?", तो दृश्य कार्य के लिए व्यावहारिक उत्तर हाँ है, जबकि आप जो कुछ भी दोहराते हैं, स्क्रिप्ट करते हैं या रिमोट मशीन पर चलाते हैं उसके लिए कमांड लाइन रखते हैं। कई डेवलपर जो Git में पारंगत हैं, दोनों का उपयोग करते हैं।

नीचे: कार्य-दर-कार्य तुलना, प्रत्येक की कमज़ोरियाँ, और एक सीखने का मार्ग जो दोनों कौशलों का निर्माण करता है। एक संक्षिप्त खुलासा: GitTree के निर्माता ने इसे लिखा है, इसलिए तदनुसार GitTree अनुभाग का मूल्यांकन करें। यहां प्रत्येक कमांड सादा Git है और macOS, Windows और Linux पर समान रूप से कार्य करता है।

Git कमांड लाइन बनाम GUI: एक साथ-साथ तुलना

तालिका में उन नौकरियों को शामिल किया गया है जो एक सामान्य सप्ताह को Git से भर देती हैं। "जीयूआई" का अर्थ एक पूर्ण डेस्कटॉप गिट क्लाइंट है, न कि कोड संपादक के अंदर छोटा स्रोत-नियंत्रण पैनल।

Git कमांड लाइन बनाम Git GUI, कार्य दर कार्य
कार्यकमांड लाइनगिट जीयूआई
शाखाएँ और इतिहास देखनाgit log --graph एक टेक्स्ट ग्राफ बनाता है जिसे कई शाखाओं के साथ पढ़ना मुश्किल हो जाता हैरंगीन लेन, लेबल और खोज के साथ एक क्लिक करने योग्य प्रतिबद्ध ग्राफ़
किसी फ़ाइल का स्टेजिंग भागgit add -p, प्रत्येक हंक के लिए y, n, s या e का उत्तर देनाकिसी हंक पर क्लिक करें या अंतर में एकल पंक्तियों पर टिक करें
मर्ज विवादों का समाधान करनाविरोध चिह्नकों को हाथ से संपादित करें, या एक मर्ज टूल सेट करेंप्रति हंक या प्रति पंक्ति विकल्प के साथ तीन-तरफ़ा दृश्य
इंटरैक्टिव रिबेसटेक्स्ट एडिटर में कार्य सूची संपादित करेंसूची से प्रत्येक क्रिया को खींचकर और चुनकर पुन: व्यवस्थित करें
एक गलती को सुधारनाgit reflog प्लस reset; आपको यह जानना होगा कि कहाँ देखना हैग्राहक पर निर्भर करता है; कुछ लोग पूर्ववत करने या दोबारा दृश्य देखने की पेशकश करते हैं
स्वचालन, हुक और सीआईमूल: प्रत्येक कमांड एक स्क्रिप्ट में जा सकता हैजीयूआई का काम नहीं; आप अभी भी स्क्रिप्ट लिखते हैं
SSH पर सर्वर पर कार्य करनासदैव उपलब्धआमतौर पर बिना डेस्कटॉप वाली मशीन पर उपलब्ध नहीं होता है
नियमित प्रतिबद्धताओं के लिए गतिएक बार कमांड और उपनाम आपकी उंगलियों में आ जाएं तो बहुत तेजी सेजब आप पहले अंतर की समीक्षा करना चाहते हैं तो तेज़ और तेज़
Git सुविधाओं का कवरेजप्लंबिंग और बिल्कुल नए विकल्पों सहित संपूर्णग्राहक पर निर्भर करता है; दुर्लभ विकल्प गायब हो सकते हैं
सीखने की अवस्थासबसे पहले खड़ी, और मॉडल अदृश्य रहता हैकोमल; ग्राफ़ मॉडल दिखाता है, लेकिन बटन कमांड छुपा सकते हैं

संक्षेप में, Git GUI बनाम CLI विभाजन सरल है: कमांड लाइन वहां जीतती है जहां काम टेक्स्ट, रिपीटेबल या रिमोट होता है, और जहां भी आपको निर्णय लेने से पहले कुछ देखने की आवश्यकता होती है वहां GUI जीतता है।

जब Git कमांड लाइन बेहतर हो

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

शुरू करने के लिए तीन सामान्य उपनाम: एक छोटी स्थिति, प्रत्येक शाखा का एक-पंक्ति ग्राफ़, और एक संशोधन जो अंतिम संदेश रखता है।

git config --global alias.st "status --short --branch"
git config --global alias.lg "log --graph --oneline --all --decorate"
git config --global alias.amend "commit --amend --no-edit"

जब Git GUI बेहतर हो

Git GUI उन कार्यों पर अपना स्थान अर्जित करता है जहां आपको एक साथ बहुत कुछ देखने या लगातार कई छोटे निर्णय लेने की आवश्यकता होती है। Git स्वयं इसे स्वीकार करता है: यह अपने स्वयं के दो ग्राफ़िकल टूल के साथ आता है, इतिहास ब्राउज़ करने के लिए gitk और कमिट तैयार करने के लिए git gui (कुछ Linux वितरण उन्हें अलग से पैकेज करते हैं)।

इतिहास और शाखाएँ पढ़ना

तीन शाखाओं के साथ, git log --graph --oneline --all पूरी तरह से पठनीय है। बीस के साथ, रेखाएं क्रॉस और रैप होती हैं, और आप यह देखने के लिए कमिट पर क्लिक नहीं कर सकते कि इसमें क्या बदलाव आया है। एक कमिट ग्राफ़ आपको एक शाखा का अनुसरण करने, लेखक या संदेश द्वारा खोजने और किसी भी स्थान पर कमिट खोलने की सुविधा देता है। हमारा गिट ट्री विज़ुअलाइज़र गाइड दोनों की विस्तार से तुलना करता है।

एक जीयूआई कमिट ग्राफ़: रंग-कोडित शाखा लेन, शाखा और टैग लेबल, और उसके बगल में चयनित कमिट का विवरण।
एक जीयूआई कमिट ग्राफ़: रंग-कोडित शाखा लेन, शाखा और टैग लेबल, और उसके बगल में चयनित कमिट का विवरण।

किसी फ़ाइल का स्टेजिंग भाग

git add -p आपके परिवर्तनों के बारे में धीरे-धीरे बताता है। आप किसी हंक को विभाजित करने के लिए y या n, s दबाते हैं, और जब आप केवल कुछ पंक्तियाँ चाहते हैं तो पैच को हाथ से संपादित करने के लिए e दबाते हैं। यह काम करता है, लेकिन कई बदलावों के साथ फ़ाइल पर यह धीमा है। जीयूआई में आप हंक पर क्लिक करते हैं, या कमिट में इच्छित सटीक पंक्तियों पर टिक करते हैं।

git add -p src/app.ts
GitTree में आंशिक स्टेजिंग: प्रत्येक परिवर्तन के ऊपर एक Stage Hunk बटन और प्रत्येक बदली हुई पंक्ति के पास एक चेकबॉक्स।
GitTree में आंशिक स्टेजिंग: प्रत्येक परिवर्तन के ऊपर एक Stage Hunk बटन और प्रत्येक बदली हुई पंक्ति के पास एक चेकबॉक्स।

संघर्ष और इतिहास फिर से लिखा जाता है

मर्ज संघर्ष और इंटरैक्टिव रिबेस ऐसे स्थान हैं जहां अधिकांश लोग मदद की तलाश में जाते हैं। कमांड लाइन पर आप हाथ से <<<<<<< मार्करों को संपादित करते हैं, या टेक्स्ट एडिटर में कार्य सूची को फिर से लिखते हैं और आशा करते हैं कि क्रम सही है। एक जीयूआई परिणाम के बगल में संघर्ष के दोनों पक्षों को दिखाता है, और एक रिबेस को उस सूची में बदल देता है जिसे आप खींचकर पुन: व्यवस्थित करते हैं। चरण-दर-चरण मार्गदर्शिकाएँ: Git मर्ज विवादों को कैसे हल करें और Git GUI में इंटरैक्टिव रीबेस।

Git GUI बनाम कमांड लाइन: ईमानदार ट्रेड-ऑफ़

कमांड लाइन की कीमत आपके लिए क्या है

  • एक तेज़ शुरुआत. आदेशों को समझने से पहले आपको मॉडल (वर्किंग ट्री, स्टेजिंग एरिया, कमिट्स, शाखाएं) सीखना होगा, और टर्मिनल कभी भी आपके लिए वह मॉडल नहीं बनाता है।
  • विनाशकारी आदेश एक टाइपो की दूरी पर हैं। git reset --hard अप्रतिबद्ध कार्य को फेंक देता है, और git push --force इस दौरान टीम के साथी द्वारा किए गए कार्यों को अधिलेखित कर सकता है।
  • आउटपुट सादा पाठ है. दो शाखाओं की तुलना करना या किसी टर्मिनल में बड़े अंतर की समीक्षा करना संभव है, लेकिन धीमी गति से।

एक GUI की आपको कितनी कीमत चुकानी पड़ती है

  • यह छिपा सकता है कि Git क्या कर रहा है। यदि आप केवल बटन के नाम सीखते हैं, तो आप उस दिन फंस जाएंगे जब कोई बटन गायब होगा या कोई जीयूआई उपलब्ध नहीं होगा।
  • ग्राहकों के बीच कवरेज और व्यवहार भिन्न-भिन्न होता है। कुछ दुर्लभ कमांड छोड़ देते हैं, और कुछ Git की अपनी प्रति भेजते हैं, जो आपके टर्मिनल में संस्करण नहीं हो सकता है।
  • यह डेस्कटॉप के बिना सर्वर पर नहीं चलता है, और यह स्क्रिप्ट या सीआई को प्रतिस्थापित नहीं करता है।
git reflog
git reset --hard HEAD@{1}

कैसे एक GUI जो आपका अपना Git चलाता है, आपको CLI के करीब रखता है

"जीयूआई या कमांड लाइन?" का सबसे अच्छा उत्तर एक GUI है जो आपको कभी भी कमांड लाइन से दूर नहीं ले जाती है। जब आप किसी एक को चुनें तो तीन चीज़ों पर ध्यान दें:

  1. यह आपके द्वारा इंस्टॉल किए गए Git को चलाता है। GUI से एक कमिट, रीबेस या पुश फिर कमांड द्वारा दिया गया परिणाम देता है, Git संस्करण और कॉन्फ़िगरेशन के साथ जो आप पहले से जानते हैं।
  2. इसके अंदर एक टर्मिनल है। जब कोई कार्य कमांड के रूप में तेज़ होता है, तो आप उसे विंडोज़ स्विच किए बिना या अपना स्थान खोए बिना टाइप करते हैं।
  3. इसके सुरक्षा जाल Git से मेल खाते हैं। फोर्स-पुश को --force-with-lease का उपयोग करना चाहिए, जो आपके द्वारा पिछली बार लाए जाने के बाद से किसी और द्वारा किए गए कमिट को ओवरराइट करने से इनकार करता है, और गलतियाँ पूर्ववत होनी चाहिए।

इस प्रकार GitTree, एक डेस्कटॉप Git क्लाइंट, बनाया जाता है। यह स्वयं को बंडल करने के बजाय आपके कंप्यूटर पर पहले से मौजूद Git (संस्करण 2.39 या नया) का उपयोग करता है, इसलिए प्रत्येक क्रिया कमांड लाइन से मेल खाती है। एक अंतर्निर्मित टर्मिनल कमिट ग्राफ़ के अंतर्गत डॉक किया गया है, रिपॉजिटरी रूट पर खुलता है और आपका स्वयं का शेल चलाता है। फ़ोर्स-पुश हमेशा --force-with-lease का उपयोग करता है। पूर्ववत करें और पुनः करें कवर कमिट और संशोधन, चेकआउट, रीसेट, रिबेस, छोड़े गए परिवर्तन और हटाई गई शाखाएं; प्रत्येक विनाशकारी कदम को चलने से पहले स्नैपशॉट लिया जाता है, और एक रीफ्लॉग दृश्य आपको पिछली स्थिति को पुनर्स्थापित करने देता है।

कमांड पैलेट (Ctrl+Shift+P, या ⌘+Shift+P Mac पर) एक खोज बॉक्स में लगभग 300 कमांड डालता है और प्रत्येक कमांड के बगल में कीबोर्ड शॉर्टकट दिखाता है। कस्टम कमांड आपकी अपनी स्क्रिप्ट को ऐप के मेनू में जोड़ते हैं।

GitTree कमांड पैलेट: किसी भी कमांड को खोजें, जिसमें कमांड वाले कमांड के बगल में कीबोर्ड शॉर्टकट दिखाया गया है।
GitTree कमांड पैलेट: किसी भी कमांड को खोजें, जिसमें कमांड वाले कमांड के बगल में कीबोर्ड शॉर्टकट दिखाया गया है।

GitTree has a Free plan on macOS, Windows and Linux that covers every Git feature, private repositories included, and Nour, the AI assistant, comes with GitTree Pro (see pricing). Every Git feature is on the Free plan once you sign in, and on Windows it needs Git for Windows installed. Ubuntu 22.04 ships Git 2.34, so upgrade Git first with our guide to upgrading Git on Ubuntu.

एक Git शिक्षण पथ जो दोनों का उपयोग करता है

  1. ग्राफ़ के साथ मॉडल सीखें

    GUI में एक रिपॉजिटरी खोलें और उसके बगल में git log --graph --oneline --all चलाएँ। प्रतिबद्धताएँ बिंदु हैं, शाखाएँ लेबल हैं जो आगे बढ़ती हैं, और HEAD निशान हैं कि आप कहाँ हैं। वह चित्र प्रत्येक बाद के आदेश का पालन करना आसान बनाता है।

  2. टर्मिनल में पाँच कमांड सीखें

    एक सप्ताह के लिए, अपना दैनिक कार्य git status, git add, git commit, git pull और git push के साथ करें। प्रत्येक के पहले और बाद में git status चलाएँ और पढ़ें कि यह क्या कहता है।

  3. दृश्य कार्यों को जीयूआई को सौंपें

    आंशिक स्टेजिंग के लिए जीयूआई का उपयोग करें, प्रतिबद्ध होने से पहले अंतर की समीक्षा करें, विवादों को हल करें और इतिहास पढ़ें: वे कार्य जहां कमांड लाइन पर सबसे अधिक समय लगता है।

  4. टर्मिनल से GUI की जाँच करें

    GUI कार्रवाई के बाद, टर्मिनल में परिणाम देखें: कमिट के बाद git log -3, मर्ज के बाद git status। आप सीखते हैं कि प्रत्येक बटन किस कमांड का प्रतीक है।

  5. फेंकी गई शाखा पर जोखिम भरे कार्यों का अभ्यास करें

    जिस शाखा को आप हटा सकते हैं उस पर इंटरैक्टिव रीबेस, रीसेट और चेरी-पिक आज़माएं, फिर प्रत्येक चरण को git reflog में ढूंढें। आपको वास्तविक कार्य में इसकी आवश्यकता पड़ने से पहले का रास्ता पता है।

  6. आप जो दोहराते हैं उसे स्क्रिप्ट करें

    एक बार जब आदेशों का क्रम नियमित लगने लगे, तो इसे उपनाम या छोटी स्क्रिप्ट में बदल दें। यहीं पर कमांड लाइन सबसे अधिक लाभ देती है।

क्या मुझे Git GUI का उपयोग करना चाहिए? एक त्वरित निर्णय मार्गदर्शिका

  • आप Git में नए हैं: एक GUI और उपरोक्त पांच कमांड के साथ शुरुआत करें। ग्राफ़ मॉडल सिखाता है और कमांड शब्दावली सिखाता है। हमारा शुरुआती गाइड के लिए Git पहले प्रोजेक्ट पर चलता है।
  • आप टर्मिनल में रहते हैं: इसे रखें, और इतिहास, संघर्ष और बड़े अंतर के लिए एक जीयूआई जोड़ें।
  • आप डिजाइनरों, लेखकों या अन्य गैर-डेवलपर्स के साथ काम करते हैं: एक जीयूआई उन्हें कमांड को याद किए बिना प्रतिबद्ध और सिंक करने की सुविधा देता है।
  • आप ज्यादातर Git को सर्वर पर या CI में चलाते हैं: कमांड लाइन सही टूल है, और GUI बहुत कम जोड़ता है।

यदि कोई GUI आपके सेटअप में है, तो हमारे सर्वोत्तम Git GUI क्लाइंट के राउंडअप में विकल्पों की तुलना करें, या macOS, Windows या Linux पर GitTree आज़माएं। प्रत्येक इंस्टॉलर GitTree डाउनलोड पृष्ठ पर है।

आप जिस भी दिशा में झुकें, लक्ष्य यह समझना है कि Git क्या कर रहा है, और एक ग्राफ और एक टर्मिनल आपको अकेले की तुलना में तेजी से वहां पहुंचाता है। प्रश्न? समर्थन पृष्ठ हम तक पहुंचने के हर तरीके को सूचीबद्ध करता है।

अक्सर पूछे जाने वाले प्रश्न

क्या Git GUI कमांड लाइन से बेहतर है?

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

क्या शुरुआती लोगों को GUI या कमांड लाइन के साथ Git सीखना चाहिए?

एक ही समय में दोनों के साथ सीखें। एक GUI कमिट ग्राफ़ मॉडल को दृश्यमान बनाता है, इसलिए कमिट, शाखाएँ और HEAD अमूर्त होना बंद कर देते हैं। मुट्ठी भर टर्मिनल कमांड (स्थिति, ऐड, कमिट, पुल और पुश) दस्तावेज़ीकरण, ट्यूटोरियल और त्रुटि संदेशों में उपयोग की जाने वाली शब्दावली सिखाते हैं। जब कोई GUI उपलब्ध नहीं होता है तो केवल बटन सीखना आपको अटका देता है।

क्या पेशेवर डेवलपर Git GUI का उपयोग करते हैं?

हाँ, GUI पेशेवर Git कार्य का एक सामान्य हिस्सा है, आमतौर पर इसके बजाय टर्मिनल के बगल में। एक सामान्य पैटर्न रोजमर्रा के कमांड टाइप करना और इतिहास, बड़े अंतर, मर्ज संघर्ष और इंटरैक्टिव रीबेस के लिए जीयूआई खोलना है। Git स्वयं दो ग्राफ़िकल टूल के साथ आता है: इतिहास के लिए gitk और कमिट के लिए git gui।

क्या Git GUI वह सब कुछ कर सकता है जो कमांड लाइन कर सकती है?

कोई भी GUI प्रत्येक Git कमांड और विकल्प को कवर नहीं करता है। प्रो गिट पुस्तक नोट करती है कि ऐसा कुछ भी नहीं है जो एक ग्राफिकल क्लाइंट कर सकता है जो कमांड लाइन नहीं कर सकती है। प्लंबिंग कमांड, दुर्लभ झंडे और बिल्कुल नए विकल्प भी पहले कमांड लाइन तक पहुंचते हैं। अंतर्निर्मित टर्मिनल वाला एक जीयूआई उस अंतर को बंद कर देता है, क्योंकि लापता कमांड एक पंक्ति दूर है।

क्या Git GUI का उपयोग मुझे Git को ठीक से सीखने से रोक देगा?

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

क्या Git GUI और टर्मिनल को एक ही रिपॉजिटरी पर उपयोग करना सुरक्षित है?

हाँ। Git एक रिपॉजिटरी के बारे में जो कुछ भी जानता है वह उसके .git फ़ोल्डर में रहता है, और Git का उपयोग करने वाला कोई भी उपकरण समान कमिट्स, शाखाओं और स्टेजिंग क्षेत्र को पढ़ता और लिखता है। एक ही समय में दो लेखन कार्य प्रारंभ करने से बचें; Git की लॉक फ़ाइल दूसरे को रोक देती है। यदि कोई GUI अपने स्वयं के Git को बंडल करता है, तो इसका संस्करण आपके टर्मिनल से भिन्न हो सकता है।

क्या GitTree Git कमांड लाइन को प्रतिस्थापित करता है?

नहीं, इसे इसके बगल में बैठने के लिए डिज़ाइन किया गया है। GitTree स्वयं को बंडल करने के बजाय आपके द्वारा पहले से इंस्टॉल किए गए Git (2.39 या नए) को चलाता है, इसलिए प्रत्येक क्रिया कमांड लाइन से मेल खाती है, और आपके स्वयं के शेल के साथ एक अंतर्निहित टर्मिनल को कमिट ग्राफ़ के तहत डॉक किया जाता है। इसमें macOS, Windows और Linux पर एक नि:शुल्क योजना है जो प्रत्येक Git सुविधा को कवर करती है, निजी रिपॉजिटरी शामिल है (Nour, AI सहायक, GitTree प्रो के साथ आता है), और एक बार जब आप GitTree खाते से साइन इन करते हैं तो यह सब काम करता है।

सूत्र

अन्य उत्पादों के बारे में दावों की जाँच उनके आधिकारिक पेजों के विरुद्ध 22 अक्टूबर 2026 पर की गई। कीमतें और सुविधाएँ बदलती हैं; विक्रेताओं के पृष्ठ सत्य का स्रोत हैं।