मैगिट - मैं पूरी शाखा का नाम लिखे बिना किसी दूरस्थ शाखा की स्थानीय रूप से जाँच कैसे कर सकता हूँ?


12

मेरी एक सुदूर शाखा है remote-branch-long-name। जब मैं हेल्म पूरा होने के साथ चेकआउट करता हूं तो मैं टाइप कर सकता हूं remote-branchऔर origin/remote-branch-long-nameएक विकल्प के रूप में दिखाऊंगा। मुद्दा यह है कि इस शाखा को स्थानीय रूप से जांचने के लिए, मैं वास्तव में उस शाखा में नहीं जा सकता, मुझे स्विच करने की आवश्यकता है remote-branch-long-name (without the origin/ prefix), क्योंकि हेल्म यह प्रदान नहीं करता है कि एक पूर्ण विकल्प के रूप में, मुझे मैन्युअल रूप से पूरे शाखा का नाम लिखना होगा।

क्या इस उपयोग के मामले में एक और फ़ंक्शन है जिसका मुझे उपयोग करना चाहिए या क्या मुझे एक साथ एक फ़ंक्शन हैक करना है?

जवाबों:


22

ऐसा लगता है कि आप जिस समस्या को हल करने की कोशिश कर रहे हैं, वह समस्या नहीं है जो आप सामना कर रहे हैं। Git आपको दूरस्थ शाखाओं के साथ स्थानीय रूप से काम करने की अनुमति नहीं देता है ( origin/remote-branch-long-nameआप देखते हैं कि सिर्फ एक ट्रैकिंग शाखा है; आप इसके साथ सीधे काम नहीं कर सकते हैं) और Magit आपको इच्छित वर्कफ़्लो की ओर निर्देशित कर रहा है।

चूँकि आप अपने साथ काम करना चाहते हैं, इसलिए origin/remote-branch-long-nameशायद आपको magit-branch-and-checkout( b c) चलना चाहिए । चुनें origin/remote-branch-long-nameऔर यह आपको स्थानीय शाखा के नाम के लिए संकेत देगा और "रिमोट-ब्रांच-लॉन्ग-नेम" को डिफॉल्ट करेगा। इससे आपको स्थानीय शाखा को अपने परिवर्तन करने की आवश्यकता होती है। जब आपके परिवर्तन किए जाते हैं और origin/remote-branch-long-nameइसे धक्का दिया जाता है तो यह रिमोट ट्रैकिंग शाखा को अपडेट करेगा।

आप उनमें स्लैश के साथ स्थानीय शाखाएं रख सकते हैं, लेकिन स्थानीय शाखा के नाम में रिमोट नाम का उपयोग करने से चीजें बहुत भ्रमित हो सकती हैं। Git को याद है कि किस स्थानीय शाखा से रिमोट की जाँच की गई थी, इसलिए आपको इसे स्वयं ट्रैक करने की आवश्यकता नहीं है।

मेरे उत्तर की तुलना में अधिक पूर्ण विवरण के लिए यहां (!) आप इस पृष्ठ को रीमोट के बारे में अच्छा अवलोकन कर पाएंगे ।


8
मुझे लगता है कि यहां डिस्कनेक्ट यह है कि मैगिट का प्रवाह गिट फ्लो से अलग है। यदि आप चलाते हैं git checkout foo, और fooएक शाखा नहीं है, लेकिन origin/fooहै, तो गिट एक नई शाखा बनाएगा fooऔर इसे ट्रैक करने के लिए सेट करेगा origin/foo। इसलिए git आपको यह सोचना सिखाता है कि "मैं सिर्फ चेकआउट fooकरता हूं , और git हर चीज को जरूरी करता है"। लेकिन यह मैजिट के साथ काम नहीं करता है; दौड़ना magit-branch-and-checkoutरास्ता है।
20

4

Magit v2.12.0 के बाद से, एक कमांड है magit-branch-checkout, b l(चेकआउट लोकल ब्रांच), जो वास्तव में आपको चाहिए। देखें दस्तावेज़ जानकारी के लिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.