"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पहली बार Git रिमोट के साथ काम कर रहा हूँ

पहली बार Git रिमोट के साथ काम कर रहा हूँ

2024-11-08 को प्रकाशित
ब्राउज़ करें:726

First time working with Git remote

परिचय

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

नई सुविधा: टीओएमएल कॉन्फ़िगरेशन के लिए समर्थन

वर्तमान में, जो उपकरण मैं पिछले कुछ हफ्तों से विकसित कर रहा हूं वह तापमान और मॉडल जैसे विकल्पों के लिए मानों के एक डिफ़ॉल्ट सेट का उपयोग करता है, जो तब लागू होता है जब उपयोगकर्ता विशिष्ट तर्क प्रदान नहीं करते हैं। इस नई सुविधा का लक्ष्य उपयोगकर्ता की होम निर्देशिका में स्थित TOML फ़ाइल से कॉन्फ़िगरेशन सेटिंग्स को पढ़ने के लिए समर्थन जोड़कर टूल की कार्यक्षमता का विस्तार करना था।

उदाहरण के लिए, यदि किसी उपयोगकर्ता के पास C:\User\Anh\config.toml पर कॉन्फ़िगरेशन फ़ाइल है, तो टूल अब उपयोगकर्ता की होम निर्देशिका में .toml फ़ाइलों के अस्तित्व की जांच करेगा। यदि ऐसी कोई फ़ाइल मौजूद है, तो टूल फ़ाइल को पढ़ता है और अंतर्निहित डिफ़ॉल्ट को ओवरराइड करते हुए, डिफ़ॉल्ट कॉन्फ़िगरेशन सेट करने के लिए उसके मान लागू करता है। हालाँकि, उपयोगकर्ता अभी भी कमांड-लाइन तर्क प्रदान कर सकते हैं, जिन्हें TOML फ़ाइल मानों पर प्राथमिकता दी जाएगी।

कार्यान्वयन

इस सुविधा को लागू करने के लिए, मैंने TOML कॉन्फ़िगरेशन फ़ाइल की सामग्री को पार्स करने के लिए toml पैकेज का उपयोग किया:


import * as toml from 'toml';


चूंकि उपकरण उपयोगकर्ता की होम निर्देशिका में एक .toml फ़ाइल की खोज करेगा, मैंने होम निर्देशिका पथ को पुनः प्राप्त करने के लिए Node.js के अंतर्निहित ओएस मॉड्यूल का उपयोग किया:


const os = require("os");
const homeDir = os.homedir();


उपयोगकर्ता की होम निर्देशिका से सभी फ़ाइलों को इकट्ठा करने के बाद, मैंने छुपी हुई फ़ाइलों (जो एक बिंदु से शुरू होती हैं) को खोजने के लिए उन पर पुनरावृत्ति की, जो .toml पर समाप्त होती हैं। मिली पहली .toml फ़ाइल का उपयोग टूल के लिए कॉन्फ़िगरेशन स्रोत के रूप में किया गया था।

टिप्पणियाँ

  • टूल होम डायरेक्टरी में एक छिपे हुए "डॉटफ़ाइल" (उदाहरण के लिए, .config.toml) की तलाश करेगा, जिसमें TOML प्रारूप में डिफ़ॉल्ट विकल्प होंगे।
  • यदि फ़ाइल गुम है, तो टूल इसे अनदेखा कर देगा और config.js फ़ाइल की तरह डिफ़ॉल्ट सेटिंग्स के साथ जारी रहेगा।
  • यदि फ़ाइल मौजूद है लेकिन मान्य TOML नहीं है, तो उपकरण एक उचित त्रुटि संदेश के साथ बाहर निकल जाएगा।
  • यदि TOML फ़ाइल मौजूद है और कोई कमांड-लाइन तर्क इसके मानों को ओवरराइड नहीं करता है, तो TOML फ़ाइल से सेटिंग्स का उपयोग किया जाएगा (उदाहरण के लिए, डिफ़ॉल्ट मॉडल)।
  • बैकवर्ड संगतता सुनिश्चित करने के लिए टूल TOML फ़ाइल में किसी भी अपरिचित विकल्प को अनदेखा कर देगा।

दूरस्थ सहयोग प्रक्रिया

जैसा कि पहले उल्लेख किया गया है, इस सप्ताह में गिट रिमोट वर्कफ़्लोज़ और मयंक के साथ गिट विलय का अभ्यास शामिल था। उसकी रिपॉजिटरी में एक फीचर पर काम करने के लिए, मैंने इन चरणों का पालन किया:

  1. फोर्क और क्लोन: मैंने उसकी रिपॉजिटरी को फोर्क किया और इसे अपनी स्थानीय मशीन पर क्लोन किया।
  2. एक शाखा बनाएं: मैंने अपनी स्थानीय प्रतिलिपि में एक नई शाखा बनाई और नई सुविधा पर काम करना शुरू किया।
  3. कमिट और पुश: परिवर्तन करने के बाद, मैंने उन्हें शाखा के लिए प्रतिबद्ध किया और शाखा को अपने फोर्कड रिपॉजिटरी में धकेल दिया।
 git push origin 

एक बार जब मयंक ने एक नई शाखा में अपने परिवर्तन किए और पुल अनुरोध (पीआर) का अनुरोध किया, तो मैं विलय से पहले उसके कोड का परीक्षण करना चाहता था। यहीं पर git रिमोट आवश्यक हो गया:

  • एक रिमोट जोड़ें: मैंने उसकी रिपॉजिटरी को अपनी स्थानीय मशीन में रिमोट के रूप में जोड़ा:

  git remote add 
  • फ़ेच कमिट्स: मैंने उसकी रिपॉजिटरी से नवीनतम कमिट्स और शाखाएं प्राप्त कीं:

git fetch 
  • ट्रैकिंग शाखा: मैंने अपने भंडार को सीधे प्रभावित किए बिना उसके अपडेट का पालन करने के लिए एक ट्रैकिंग शाखा बनाई:

git checkout -b /

बग की पहचान और समाधान

परीक्षण के दौरान, मैंने मयंक की शाखा में दो प्रमुख मुद्दों की पहचान की:

  • निर्देशिका गलत कॉन्फ़िगरेशन: उपकरण उपयोगकर्ता की होम निर्देशिका के बजाय प्रोजेक्ट रूट से TOML फ़ाइल को गलत तरीके से पढ़ रहा था।
  • पथ रिज़ॉल्यूशन: कोड एक सापेक्ष फ़ाइल पथ का उपयोग कर रहा था, जब मैंने इसे अपनी मशीन पर चलाया तो त्रुटियाँ उत्पन्न हुईं। मैंने एक निरपेक्ष पथ पर स्विच करने का सुझाव दिया

// Resolve the path to the configuration file
const configPath = path.resolve(__dirname, "../.toml");

// Load configuration from config.toml
const config = loadConfig(configPath);


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

निष्कर्ष

गिट रिमोट के साथ काम करने और विलय की यह प्रक्रिया अविश्वसनीय रूप से शैक्षिक रही है। मैं अब साझा कोडबेस पर सहयोग करने में अधिक आश्वस्त महसूस करता हूं। पहले, मैं अक्सर विभिन्न डेवलपर्स के कई प्रतिबद्धताओं और योगदानों से अभिभूत महसूस करता था, लेकिन अब मेरे पास Git वर्कफ़्लोज़ का बेहतर नियंत्रण और समझ है।

इस सुविधा पर काम करके और Git रिमोट को एकीकृत करके, मैंने व्यावहारिक अनुभव प्राप्त किया है जो भविष्य की परियोजनाओं के लिए अमूल्य होगा।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/anhchienvu/first-time-working-with-git-remote-5dbl?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3