इतिहास को दोबारा लिखे बिना Git में मर्ज कमिट को कैसे वापस लाएं
मर्ज कमिट के दो पैरेंट होते हैं, इसलिए Git को यह जानना होगा कि किस पक्ष को रखना है। यहां बताया गया है कि पैरेंट को कैसे चुनें, साझा शाखा पर मर्ज को सुरक्षित रूप से पूर्ववत करें और बाद में काम को वापस लाएं।
द्वारा लिखित Kodmora
GitTree के पीछे सॉफ्टवेयर हाउस
- विलय
- पूर्ववत करें और पुनर्प्राप्त करें
- इतिहास कमिट करें
इस पेज पर
मर्ज कमिट को पूर्ववत करने के लिए, `git revert -m 1 <merge-commit>` चलाएँ। -m 1 Git को पहले पैरेंट को रखने के लिए कहता है, जो कि वह शाखा है जिसमें आपने विलय किया है, और मर्ज में लाए गए सभी चीजों को पूर्ववत करें। Git एक नया कमिट जोड़ता है, इसलिए इतिहास बरकरार रहता है और साझा शाखा में पुश करना सुरक्षित होता है।
मैं मर्ज कमिट को कैसे वापस लाऊं?
पहले मर्ज कमिट ढूंढें। ग्राफ़ इसे दो अभिभावकों के साथ कमिट के रूप में दिखाता है:
git log --oneline --graph -10फिर उसके माता-पिता की पुष्टि करें। कमिट के बाद मुद्रित पहला हैश पैरेंट 1 है, दूसरा पैरेंट 2 है:
git log -1 --format="%h parents: %p" <merge-commit>पेरेंट 1 रखते हुए इसे वापस लाएं, और किसी भी अन्य की तरह नई कमिट को आगे बढ़ाएं:
git revert -m 1 <merge-commit>
git pushकुछ भी दोबारा नहीं लिखा जाता है, इसलिए किसी को भी रीसेट करने या बलपूर्वक पुल करने की आवश्यकता नहीं है। यदि रिवर्ट विरोध करता है, तो फ़ाइलों को ठीक करें, उन्हें चरणबद्ध करें और git revert --continue चलाएँ। पीछे हटने के लिए, git revert --abort दौड़ें।
Git क्यों कहता है "कमिट एक मर्ज है लेकिन कोई -m विकल्प नहीं दिया गया"?
एक सामान्य कमिट में एक अभिभावक होता है, इसलिए इसका अंतर स्पष्ट है। मर्ज कमिट में दो होते हैं, इसलिए git revert <merge-commit> यह नहीं बता सकता कि आप किस तरफ लौटना चाहते हैं। Git इस त्रुटि के साथ रुक जाता है और कुछ भी नहीं बदलता है:
error: commit 4f2a9c1 is a merge but no -m option was given.
fatal: revert failedमूल संख्या के साथ -m जोड़ें और इसे फिर से चलाएँ।
क्या मुझे -एम 1 या -एम 2 का उपयोग करना चाहिए?
| विकल्प | रखता है | जब इसका प्रयोग करें |
|---|---|---|
-m 1 | वह शाखा जिसमें आपका विलय हुआ है, जैसे कि main | एक सुविधा को मर्ज कर दिया गया था और उसे बाहर निकाला जाना चाहिए। यह सामान्य मामला है. |
-m 2 | जिस शाखा का विलय किया गया | आपने main को अपनी फीचर शाखा में पुल लिया है और main से जो आया है उसे हटाना चाहते हैं। |
मैं रिवर्ट के बाद उसी शाखा का दोबारा विलय कैसे करूँ?
यह जाल है. जैसा कि Git दस्तावेज़ कहता है, मर्ज को वापस करना "घोषणा करता है कि आप कभी नहीं चाहेंगे कि मर्ज द्वारा ट्री में बदलाव लाया जाए"। शाखा की कमिट अभी भी main की पूर्वज हैं, इसलिए दूसरा git merge केवल वापसी के बाद की गई कमिट लाता है।
मूल कार्य को वापस लाने के लिए, पहले रिवर्ट को वापस लाएं, फिर निश्चित शाखा को मर्ज करें:
git revert <revert-commit>
git merge feature/searchयदि मर्ज को अभी तक आगे नहीं बढ़ाया गया तो क्या होगा?
आप रिवर्ट जोड़ने के बजाय मर्ज को हटा सकते हैं। Git मर्ज से पहले कमिट को ORIG_HEAD में रिकॉर्ड करता है, और --merge असंबद्ध स्थानीय संपादनों को छूने से इंकार कर देता है जिन्हें रीसेट ओवरराइट कर देगा:
git reset --merge ORIG_HEADयदि मर्ज अभी भी प्रगति पर है और इसमें विरोध है, तो अभी तक कोई मर्ज कमिट नहीं है, इसलिए git merge --abort का उपयोग करें। यदि आप बहुत आगे जाते हैं तो रीसेट, रीबेस या कमिट को कैसे पूर्ववत करें पढ़ें, और इस विकल्प के पीछे के नियम के लिए साझा इतिहास पर रिवर्ट बनाम रीसेट पर पाठ पढ़ें।
GitTree में मर्ज कमिट को कैसे वापस लाएं
कमिट का मेनू खोलें
कमिट ग्राफ़ में मर्ज ढूंढें और उस पर राइट-क्लिक करें।
रिवर्ट कमिट चुनें
मर्ज के दो पैरेंट होते हैं, इसलिए GitTree पूछता है कि किसके विरुद्ध माप किया जाए: पहला पैरेंट (शाखा में विलय) सामान्य विकल्प है, और दूसरा पैरेंट (शाखा में विलय) दूसरा है।
परिणाम जांचें
GitTree कहता है रिवर्टेड. और नई कमिट आपकी शाखा की शीर्ष पंक्ति है। यदि यह विरोध करता है, तो फ़ाइलों का समाधान करें और वापस जाने के लिए जारी रखें, या निरस्त करें... दबाएँ।
पूरी गाइड के लिए चेरी-पिक एंड रिवर्ट इन GitTree देखें, जिसमें एक साथ कई कमिट शामिल हैं।

अक्सर पूछे जाने वाले प्रश्न
क्या गिट रिवर्ट मर्ज कमिट को हटा देता है?
नहीं, मर्ज इतिहास में बना हुआ है। Git एक नई कमिट जोड़ता है जो इसके परिवर्तनों को पूर्ववत करता है, यही कारण है कि यह साझा शाखा पर सुरक्षित है।
गिट रिवर्ट में -एम 1 का क्या मतलब है?
यह रखने के लिए मेनलाइन पेरेंट का नाम रखता है। पेरेंट 1 वह शाखा है जिस पर आप मर्ज चलाते समय थे, इसलिए -m 1 अन्य शाखा जो लाती है उसे हटा देती है।
क्या मैं पहले से ही पुश किए गए मर्ज को वापस ला सकता हूँ?
हाँ, और यह उसके लिए सही उपकरण है। पूर्ववत करने से एक कमिट जुड़ जाती है, जिससे आप सामान्य रूप से आगे बढ़ते हैं और किसी को भी कुछ भी दोबारा लिखना नहीं पड़ता है।
मेरा दूसरा विलय कुछ भी वापस क्यों नहीं लाया?
उलटी शाखा की कमिट पहले से ही इतिहास में हैं, इसलिए Git उन्हें विलय के रूप में मानता है। रिवर्ट कमिट को पूर्ववत करें, फिर दोबारा मर्ज करें।
मैं उस मर्ज को कैसे पूर्ववत करूँ जो अभी भी प्रगति पर है?
git merge --abort चलाएँ. यह मर्ज को रोकता है और फ़ाइलों को आपके शुरू करने से पहले जैसी स्थिति में लौटा देता है।
सूत्र
अन्य उत्पादों के बारे में दावों की जाँच उनके आधिकारिक पेजों के विरुद्ध 7 नवंबर 2026 पर की गई। कीमतें और सुविधाएँ बदलती हैं; विक्रेताओं के पृष्ठ सत्य का स्रोत हैं।