सॉफ्टवेयर इंजीनियर इंटरव्यू सवाल

आप rebase कब करते हैं और merge कब?

इंटरव्यूअर असल में क्या परख रहा है, अपना जवाब कैसे स्ट्रक्चर करें, और एक बोला हुआ उदाहरण जिसे आप अपना सकते हैं।

छोटा जवाब

अपनी feature branch को main branch पर rebase कीजिए ताकि history सीधी रहे और रिव्यू से पहले conflicts छोटी छोटी खुराक में सुलझ जाएं। जब उस branch को किसी साझा branch में मिलाना हो तब merge कीजिए, और ऐसी branch कभी rebase मत कीजिए जिसे दूसरे लोग पहले ही pull कर चुके हैं, क्योंकि साझा history दोबारा लिखने से सबको recovery में उतरना पड़ता है। छोटे में: निजी काम rebase, सार्वजनिक काम merge, और squash तब जब commit history आगे पढ़ने वालों के लिए कुछ जोड़ती ही न हो।

इंटरव्यूअर यह क्यों पूछते हैं

Git का इस्तेमाल इंटरव्यूअर को बताता है कि आप दूसरों के साथ कैसे काम करते हैं। वे निजी बनाम साझा history वाला नियम चाहते हैं, यह समझ कि rebase commits हटाता नहीं बल्कि दोबारा लिखता है, और टीम की परंपरा को लेकर व्यावहारिकता। जो हर जगह एक ही रणनीति पर अड़ता है, या समझा नहीं पाता कि साझा branch पर force push नुकसान क्यों करता है, वह अक्सर टीम में रगड़ पैदा करता है।

अपना जवाब कैसे स्ट्रक्चर करें

  • निजी बनाम साझा branch वाला नियम बताइए।
  • समझाइए कि rebase commit ids के साथ असल में क्या करता है।
  • बताइए कि आप इसके बजाय squash कब करेंगे।
  • जहां टीम की परंपरा हो वहां उसे मानिए।

उदाहरण जवाब

बोला हुआ उदाहरण, पहले व्यक्ति में

मेरा नियम है निजी history rebase, साझा history merge। जब तक feature branch मेरी है, मैं उसे नियमित रूप से main पर rebase करता हूं, क्योंकि इससे diff ईमानदार रहती है और मैं आखिर में एक बहुत बड़े conflict के बजाय तीन छोटे conflict झेलना पसंद करूंगा। जब वह main में जाती है तो मैं merge करता हूं, आम तौर पर squash करके, क्योंकि छह महीने बाद log पढ़ने वाला मेरे fix typo वाले commits नहीं देखना चाहता। जो मैं नहीं करूंगा वह है ऐसी branch को rebase करना जिसे किसी और ने pull कर लिया है, क्योंकि rebase commits हिलाता नहीं, वह नए hash वाले नए commits बनाता है, और बाकी सबके पास पड़ी पुरानी कॉपियां अनाथ हो जाती हैं। इसका मतलब है force push और किसी का काम खोना। मुझे ठीक इसी हाल से निकालने के लिए एक साथी को reflog के जरिए recovery करानी पड़ी थी। नियम से आगे, मैं वही करता हूं जो टीम पहले से करती है, क्योंकि एक जैसी history जिसे सब समझते हैं, मेरी निजी पसंद से बेहतर है, और कोड रिव्यू में यह लड़ने लायक मुद्दा नहीं है।

जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।

देखें यह कैसे काम करता है

फॉलो-अप सवाल जिनकी उम्मीद रखें

  • खराब rebase के बाद खोया commit आप कैसे वापस लाएंगे?
  • interactive rebase आपको क्या क्या साफ करने देता है?
  • जो branch लंबे वक्त से चल रही है और बुरी तरह भटक गई है उसे आप कैसे संभालेंगे?

सॉफ्टवेयर इंजीनियर के और सवाल

आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।

मेरे सवाल प्रेडिक्ट करें

मुश्किल सवाल पूछे जाने से पहले उनकी रिहर्सल कीजिए

एक लाइव कोपायलट के साथ प्रैक्टिस कीजिए, फिर तैयार होकर अंदर जाइए। $29 Session Pass आपको इंटरव्यू पार करा देता है, न कोई सब्सक्रिप्शन, न कोई लॉक-इन।

GhostPilot पाएं