ए गार्ट मर्ज को निरस्त करें


119

मैं GCS का उपयोग कर VCS के रूप में एक परियोजना पर काम कर रहा हूं। मुझे xyzमास्टर की मेनलाइन शाखा से एक शाखा कट मिली। थोड़ी देर तक काम करने के बाद, मैंने अपना कोड प्रतिबद्ध किया और शाखा मेनलाइन का एक पुल लिया।

पुल ठीक था। मैंने तब मास्टर के साथ कोड मर्ज किया। मर्ज के बाद, कुछ फ़ाइलों में समस्याएं थीं। मैंने विलय के बाद कोड नहीं किया है। क्या कोई इस बारे में मार्गदर्शन कर सकता है कि मैं इस मर्ज को कैसे समाप्त कर सकता हूं और अपनी शाखा ला सकता हूं जहां मैं वर्तमान में उस राज्य में काम कर रहा हूं जहां यह विलय से पहले था?



क्या आप शाखा की पिछली प्रतिबद्धता को बहाल नहीं कर सकते?
वुतीपोंग वोंगसाकुलडेज


1
ध्यान दें कि Git में, revertएक कमांड का नाम है जो पिछली प्रतिबद्ध में परिवर्तनों को बदलने के लिए एक नई प्रतिबद्ध बनाता है , इसलिए यह वह शब्द नहीं है जिसे आप यहां खोज रहे हैं। मैंने आपके प्रश्न को स्पष्ट करने के लिए संपादित किया है
स्कॉट वेल्डन

जवाबों:


296

जब तक आप प्रतिबद्ध नहीं थे तब तक आप टाइप कर सकते हैं

git merge --abort

जैसा कि कमांड लाइन ने सुझाया था।


4
यह प्रयास करते समय मुझे यह संदेश मिला: error: Entry 'MyFile.java' not uptodate. Cannot merge. fatal: Could not reset index file to revision 'HEAD'.
SMBiggs

1
@ अहद गिट जगह में पहले से मौजूद परिवर्तनों (पहले से ही ट्रैक की गई फ़ाइलों) के साथ एक मर्ज शुरू नहीं करता है। git वह नहीं जानता जो उसकी रक्षा नहीं कर सकता।
तीमुथियुस ट्रक

हाँ, आप मुझे अपना कोड खो कर सीखा रहे हैं। यहाँ मेरी समस्या का विस्तार है, मैं समस्या में कैसे गिर गया। stackoverflow.com/questions/55474092/how-to-undo-the-git-abort
अहमद

23

यदि आप मर्ज संघर्ष करते समय "स्थिति" करते हैं, तो पहली बात यह बताती है कि आप मर्ज को कैसे समाप्त करें।

मर्ज संघर्ष होने के दौरान गिट स्थिति का उत्पादन


अच्छा, इसने मुझे सुझाव दिया git reset HEAD <file>कि प्रभावी रूप से "एक्सटेंशन" को "विस्तार" को git एक्सटेंशन स्रोत नियंत्रण से हटा दिया गया => फिर मैं या तो संघर्षों को हल कर सकता हूं या जीआईटी विस्तार सूची में मेरे बदलावों को वापस ले सकता हूं :)
jave.web

6

सच कहा जाए कि वेब पर पहले से ही यह करने के लिए कई, कई संसाधन हैं:

Git: किसी कमिट को मर्ज कैसे करें?

Git: किसी कमिट को मर्ज कैसे करें?

Git के ब्लॉग से पूर्ववत् विलय , (आर्काइव.ऑर्गबैक मशीन से पुनर्प्राप्त)

इसलिए मुझे लगता है कि मैं इनमें से कुछ को संक्षेप में बताऊंगा:

  1. git revert <merge commit hash>
    यह एक अतिरिक्त "रिवर्ट" कमिट बनाता है, जिसमें कहा गया है कि आप एक मर्ज को खोलना चाहते हैं

  2. git reset --hard <commit hash *before* the merge>
    मर्ज करने से पहले यह इतिहास रीसेट करें। यदि आप मर्ज के बाद कमिट करते हैं तो आपको बाद में cherry-pickउनकी आवश्यकता होगी ।

लेकिन ईमानदारी से इस गाइड यहाँ कुछ भी मैं व्याख्या कर सकते हैं की तुलना में बेहतर है, आरेख के साथ! :)


1
लिंक हो गया है। आह।
SMBiggs

@ScottBiggs मुझे लगता है कि वे इसे git-scm.com/book/en/v2/… पर ले गए । डेनिस, यदि आप इसे पढ़ते हैं, तो क्या आप जांच कर सकते हैं? और अगर यह वास्तव में एक ही है, तो क्या आप अपने उत्तर में लिंक को अपडेट कर सकते हैं? धन्यवाद!
फैबियो का कहना है कि
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.