JavaScript डेवलपर के लिए Git वर्कफ़्लो: प्रोडक्शन को कैसे न तोड़ें

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Git कोई जादू नहीं है, बल्कि एक उपकरण है। लेकिन इसका उपयोग करना आना चाहिए

\n\n

यदि आप JavaScript में लिखते हैं, तो आपने शायद पहले ही ऐसी स्थिति का सामना किया होगा जब अगले git merge के बाद पूरा कंसोल लाल हो जाता है, और Slack में संदेश आते हैं: "बिल्ड किसने तोड़ा?" परिचित लगता है? उस दुनिया में आपका स्वागत है जहाँ Git वर्कफ़्लो सिर्फ कमांड का एक सेट नहीं है, बल्कि एक नींव है जिस पर पूरा विकास टिका हुआ है।

\n\n

इस लेख में, हम अमूर्त सिद्धांत नहीं, बल्कि JavaScript डेवलपर्स की एक टीम के लिए एक वास्तविक कार्य प्रक्रिया पर चर्चा करेंगे। आप सीखेंगे कि शाखाओं को कैसे व्यवस्थित करें, कोड रिव्यू कैसे सेट करें, rebase से न डरें और दिनचर्या को स्वचालित कैसे करें। चलिए शुरू करते हैं।

\n\n

टीम में मानक "git add — git commit — git push" काम क्यों नहीं करता?

\n\n

जब किसी प्रोजेक्ट पर एक व्यक्ति काम करता है, तो शाखाओं में अव्यवस्था एक व्यक्तिगत मामला है। लेकिन जैसे ही दूसरा, तीसरा, दसवां डेवलपर रिपॉजिटरी से जुड़ता है, स्पष्ट Git वर्कफ़्लो के बिना अराजकता शुरू हो जाती है। संघर्ष, खोई हुई कमिट, "fix" या "upd" जैसे अस्पष्ट संदेश - ये सब उत्पादकता को मार देते हैं।

\n\n

JavaScript प्रोजेक्ट्स (React, Node.js, Next.js) के लिए, समस्या इस तथ्य से बढ़ जाती है कि निर्भरताएँ, बिल्ड और कॉन्फ़िगरेशन अक्सर बदलते रहते हैं। एक गलत मर्ज - और आप आधा दिन यह पता लगाने में बिता देते हैं कि npm run build ने काम करना क्यों बंद कर दिया।

\n\n

इसलिए आइए एक एकीकृत मानक विकसित करें। इसे "JS टीम के लिए स्वच्छ Git वर्कफ़्लो" कहते हैं।

\n\n

आधार: शाखाकरण मॉडल (Branching Model)

\n\n

हम आधुनिक JavaScript स्टैक के लिए छोटे अनुकूलन के साथ क्लासिक Git Flow का उपयोग करेंगे। आपको 10 प्रकार की शाखाओं की आवश्यकता नहीं है। चार पर्याप्त हैं:

\n\n
    \n
  • main — प्रोडक्शन शाखा। यहाँ केवल स्थिर कोड आता है जो रिव्यू और परीक्षण पास कर चुका है।
  • \n
  • develop — मुख्य विकास शाखा। सभी सुविधाएँ यहाँ मर्ज की जाती हैं।
  • \n
  • feature/* — नई सुविधाओं के लिए शाखाएँ। सार्थक नाम दें: feature/add-auth-modal।
  • \n
  • fix/* — बग फिक्स के लिए। उदाहरण के लिए, fix/api-timeout-error।
  • \n
\n\n

यह सेट 90% प्रोजेक्ट्स के लिए पर्याप्त है। कठिन चाहते हैं? रिलीज़ तैयार करने के लिए release/* और प्रोडक्शन पर तत्काल सुधार के लिए hotfix/* जोड़ें।

\n\n

उदाहरण: feature branch बनाना

\n\n

मान लीजिए, आपको React पर एक संपर्क फ़ॉर्म जोड़ना है। इसे develop में न करें। एक अलग शाखा बनाएँ:

\n\n
git checkout develop\ngit pull origin develop\ngit checkout -b feature/contact-form\n
\n\n

अब आप अलग-थलग काम कर रहे हैं। तोड़ सकते हैं, प्रयोग कर सकते हैं, खराब कोड लिख सकते हैं - इससे किसी को कोई परेशानी नहीं होगी।

\n\n

कमिट: इस तरह लिखें कि शर्म न आए

\n\n

कमिट संदेश आपके कोड का दस्तावेज़ीकरण हैं। यदि आप git commit -m "fix" लिखते हैं, तो आप सहकर्मियों और एक महीने बाद खुद के लिए जीवन कठिन बना रहे हैं। Conventional Commits का पालन करें। यह एक मानक है जो आसानी से पढ़ा जाता है और स्वचालित रूप से उपकरणों द्वारा पार्स किया जाता है।

\n\n

प्रारूप:

\n\n
<प्रकार>(<क्षेत्र>): <विवरण>\n\n[वैकल्पिक कमिट बॉडी]\n
\n\n

JavaScript प्रोजेक्ट के लिए प्रकार:

\n
    \n
  • feat — नई सुविधा
  • \n
  • fix — बग फिक्स
  • \n
  • refactor — रिफैक्टरिंग
  • \n
  • docs — दस्तावेज़ीकरण
  • \n
  • chore — दिनचर्या (निर्भरताएँ अपडेट करना, लिंटर सेट करना)
  • \n
\n\n

एक अच्छी कमिट का उदाहरण:

\n\n
feat(contact-form): Yup के साथ फ़ॉर्म वैलिडेशन जोड़ें\n\n- नाम, ईमेल, संदेश फ़ील्ड के लिए Yup स्कीमा जोड़ा गया\n- ब्लर होने पर इनलाइन त्रुटियाँ प्रदर्शित करें\n- जब फ़ॉर्म अमान्य हो तो सबमिट बटन को निष्क्रिय करें\n
\n\n

ऐसी कमिट तुरंत बताती है: क्या किया गया, कहाँ किया गया और क्यों। कोड रिव्यू के लिए आदर्श।

\n\n

कोड रिव्यू: आलोचना से मत डरो, बग से डरो

\n\n

कोड रिव्यू कोई परीक्षा नहीं है, बल्कि प्रोडक्शन में जाने से पहले त्रुटि पकड़ने का एक तरीका है। अच्छे कोड में

ब्लॉग

पुस्तक अनुशंसाएँ