मैगी के साथ चेरी को आसानी से कैसे लें?


40

मैं अब कुछ महीनों के लिए मैगिट का उपयोग कर रहा हूं और मुझे यह बहुत पसंद है। लेकिन एक चीज जो मैं अभी भी एक टर्मिनल में कर रहा हूं वह चेरी पिकिंग है।

ऐसा करने का एक सरल तरीका क्या है?

जवाबों:


31

हर जगह जब आप मैगिट बफर में एक कमिट देखते हैं, तो आप उसे वहां ले जाकर और फिर टाइप करके चेरी-पिक कर सकते हैं A A। आप एक ही बार में कई कमेंट्स को चेरी-पिक भी कर सकते हैं: इस क्षेत्र का उपयोग करके कुछ कमिट्स चुनें और फिर दबाएँ A A


45

मैगिट संस्करण <= 1.4.2

यह काफी आसान है:

  1. अवलोकन दर्ज करें magit-status
  2. b bउस शाखा को देखें (दबाएं ) जिसे आप चेरी में डालना चाहते हैं।
  3. l r lचेरी लेने के लिए इच्छित कमिट्स को खोजने के लिए एक लॉग रेंज (प्रेस ) करें। यहां आप उन 2 शाखाओं का चयन करें जिनकी आप तुलना करना चाहते हैं।
  4. उस कमिट पर स्क्रॉल करें जिसे आप चुनना चाहते हैं और Aपरिवर्तनों को लागू करने के लिए दबाएं और उन्हें प्रतिबद्ध संदेश के साथ एक साथ चरणबद्ध करें। यदि आप aइसे दबाते हैं तो यह परिवर्तनों को चरणबद्ध नहीं करेगा बल्कि केवल उन्हें लागू करेगा।

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

Magit संस्करण> = 2.1.0

Magit को 2.1 में अपग्रेड करने के बाद वर्कफ़्लो अलग है। दोनों तरीकों के लिए आपको सबसे पहले शुरुआत करनी होगी magit-status

विधि A : चेरी एक-एक करके दूसरी शाखा से परिवर्तन लेती है

  1. प्रेस lऔर फिर oअन्य शाखाओं की सूची प्राप्त करने के लिए।
  2. उस शाखा का चयन करें जिसे आप चेरी से लेना चाहते हैं।
  3. प्रतिबद्ध करने के लिए आप की जरूरत और प्रेस ले जाएँ Aके बाद Aफिर से।
  4. स्टेटस लाइन आपको दिखाएगी कि आपके द्वारा चयनित किया गया है

    जैसे feature/ABC~4

    Enterपरिवर्तन लागू करने के लिए दबाएँ ।

विधि बी : चेरी एक अन्य शाखा से सभी परिवर्तन उठाओ

  1. Aचेरी पिक मोड चुनने के लिए दबाएं ।
  2. Aपरिवर्तनों को लागू करने और प्रतिबद्ध करने के लिए फिर से दबाएं । aकेवल परिवर्तन लागू करने के लिए दबाएँ ।
  3. प्रेस और परिवर्तन करने के लिए चेरी लेने के लिए एक शाखा चुनें Enter

मैं व्यक्तिगत रूप से पद्धति ए को पसंद करता हूं क्योंकि आप मर्ज संघर्ष को बेहतर तरीके से संभाल सकते हैं।


8

मैं चेरी लेने का उपयोग नहीं करता, लेकिन शो ?में मार रहा हूँ । यह कमांड चलाता है , जो आपको एक सिर और एक अपस्ट्रीम लेने देता है। ऐसा लगता है कि आप क्या चाहते हैं।magit-statusy: Cherrymagit-cherry

आप C-h r d m Magit RETमैगिट मैनुअल को पढ़ने के लिए टाइप कर सकते हैं। आप मैनुअल के माध्यम से खोज करने के लिए C-s cherryबार-बार हिट C-sका उपयोग कर सकते हैं । ऐसा लगता है कि जानकारी धारा 23 में है:

इस आराम में से gitएक यह है कि यह आपको बता सकता है कि कौन से आवागमन में विलय हो गया है, लेकिन स्थानीय स्तर पर और इसके विपरीत नहीं। इसके लिए Git की उप-कमांड है cherry(भ्रमित होने की नहीं cherry-pick)। Magit के पास इसके लिए समर्थन है magit-cherryजो yकि डिफ़ॉल्ट रूप से बाध्य है ।

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

इस सूची से आप चेरी-पिकिंग व्यक्तिगत कमिट्स ( aचेरी-पिकिंग के लिए बिना कमिटमेंट के और A समान ऑटोमैटिक कमिट के लिए) सामान्य कुंजी बाइंडिंग का उपयोग कर सकते हैं । प्रत्येक चेरी-पिक के बाद बफर स्वचालित रूप से ताज़ा हो जाता है।


1
मैगिट मैनुअल को लागू करते समय आप C-h iइसके बजाय एक महत्वपूर्ण स्ट्रोक बचा सकते हैं C-h r d। यह आपको सीधे जानकारी के शीर्ष-स्तर पर ले जाएगा।
itsjeyd

1
@itsjeyd Nahh, C-h iआपके द्वारा खोली गई अंतिम जानकारी फ़ाइल में ले जाएगा, इसलिए यदि मैं हिट करता हूं, तो C-h i mमैं संभवतः सब कुछ के मेनू के बजाय SICP में अध्यायों के एक मेनू को देख सकता हूं। हिट करने के dबाद C-h iया C-h rसुनिश्चित करें कि हिट करने से पहले आप इन्फो-डायरेक्टरी में होंगे m
नानी

यह एक अच्छी चाल है, मुझे इसके बारे में पता नहीं था! इसके अलावा, पूरी तरह से विषय: SICP का एक जानकारी संस्करण ?! मुझे एक प्रति कहां मिल सकती है? :)
itsjeyd

@itsjeyd मैं इसे अपने ड्रॉपबॉक्स में रखता हूं, मुझे लगता है कि मैं इसे यहां से प्राप्त कर रहा हूं: github.com/webframp/sicp-info
नानी

1
धन्यवाद! मैंने MELPA की जाँच की और यह पता चला कि एक पैकेज है जो उस भंडार से निर्मित है। इसलिए SICP का Info संस्करण स्थापित करना उतना ही आसान है M-x package-install RET sicp RET:)
itsjeyd
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.