मैगिट - पूर्ववर्ती प्रतिबद्ध - इतिहास हेरफेर


12

इस StackOverflow प्रश्न के पास अंतिम समाधान के लिए सबसे अच्छा समाधान / दृष्टिकोण है।

मैंने एक हफ्ते पहले मैगिट का उपयोग करना शुरू कर दिया था और इसके सभी दस्तावेज़ीकरण को देखने के बाद भी मेरे पास गलती से किए गए बदलाव को पूर्ववत करने का कोई निश्चित / सर्वोत्तम तरीका नहीं है।

उदाहरण के लिए:
पूर्ववत करने के लिए और अंतिम कम करने के लिए हम उपयोग कर सकते हैं:

$ git commit -m "Something terribly misguided"
$ git reset HEAD~
<< edit files as necessary >>
$ git add ... 
$ git commit -c ORIG_HEAD # To keep the same commit message

मैगिट का उपयोग करके इस प्रक्रिया को पुन: पेश करने के लिए सबसे अच्छा वर्कफ़्लो क्या होना चाहिए ?

जवाबों:


17

आप magit-reset(डिफ़ॉल्ट रूप से बाध्य होकर x) का उपयोग कर सकते हैं । बिंदु पर कमेंट का उपयोग प्रॉम्प्ट के लिए डिफ़ॉल्ट के रूप में किया जाएगा, लेकिन आप यहां कोई भी संशोधन मान दर्ज कर सकते हैं ("HEAD ~")।

रीसेटिंग कमांड को मैनुअल के "रीसेटिंग" खंड में वर्णित किया गया है: https://magit.vc/manual/magit/Resetting.html

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


कुछ अतिरिक्त टिप्पणियां:

  • उपयोग करने के बजाय =C, आपको पिछले संदेशों के माध्यम से साइकिल चलाने के लिए प्रतिबद्ध ( cc) और फिर उपयोग git-commit-prev-message ( M-p) शुरू करने के लिए अधिक दृढ़ विश्वास हो सकता है ।

  • यदि आप केवल अंतिम प्रतिबद्ध को संशोधित कर रहे हैं, तो आप पिछली प्रतिबद्धताओं magit-commit-amend ( ca) या magit-commit-extend( ce) के साथ किए गए परिवर्तनों का सामना कर सकते हैं । (उत्तरार्द्ध COMMIT_EDITMSG बफर को दरकिनार करते हुए प्रतिबद्ध संदेश का पुन: उपयोग करता है।)

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