सामग्री पर जाएं
GitTree
गिट गाइड5 मिनट पढ़ा

इतिहास को दोबारा लिखे बिना 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 में मर्ज कमिट को कैसे वापस लाएं

  1. कमिट का मेनू खोलें

    कमिट ग्राफ़ में मर्ज ढूंढें और उस पर राइट-क्लिक करें।

  2. रिवर्ट कमिट चुनें

    मर्ज के दो पैरेंट होते हैं, इसलिए GitTree पूछता है कि किसके विरुद्ध माप किया जाए: पहला पैरेंट (शाखा में विलय) सामान्य विकल्प है, और दूसरा पैरेंट (शाखा में विलय) दूसरा है।

  3. परिणाम जांचें

    GitTree कहता है रिवर्टेड. और नई कमिट आपकी शाखा की शीर्ष पंक्ति है। यदि यह विरोध करता है, तो फ़ाइलों का समाधान करें और वापस जाने के लिए जारी रखें, या निरस्त करें... दबाएँ।

पूरी गाइड के लिए चेरी-पिक एंड रिवर्ट इन GitTree देखें, जिसमें एक साथ कई कमिट शामिल हैं।

GitTree ग्राफ़ में कमिट मेनू किसी भी कमिट पर रिवर्ट कमिट प्रदान करता है, जिसमें मर्ज कमिट भी शामिल है।
GitTree ग्राफ़ में कमिट मेनू किसी भी कमिट पर रिवर्ट कमिट प्रदान करता है, जिसमें मर्ज कमिट भी शामिल है।

अक्सर पूछे जाने वाले प्रश्न

क्या गिट रिवर्ट मर्ज कमिट को हटा देता है?

नहीं, मर्ज इतिहास में बना हुआ है। Git एक नई कमिट जोड़ता है जो इसके परिवर्तनों को पूर्ववत करता है, यही कारण है कि यह साझा शाखा पर सुरक्षित है।

गिट रिवर्ट में -एम 1 का क्या मतलब है?

यह रखने के लिए मेनलाइन पेरेंट का नाम रखता है। पेरेंट 1 वह शाखा है जिस पर आप मर्ज चलाते समय थे, इसलिए -m 1 अन्य शाखा जो लाती है उसे हटा देती है।

क्या मैं पहले से ही पुश किए गए मर्ज को वापस ला सकता हूँ?

हाँ, और यह उसके लिए सही उपकरण है। पूर्ववत करने से एक कमिट जुड़ जाती है, जिससे आप सामान्य रूप से आगे बढ़ते हैं और किसी को भी कुछ भी दोबारा लिखना नहीं पड़ता है।

मेरा दूसरा विलय कुछ भी वापस क्यों नहीं लाया?

उलटी शाखा की कमिट पहले से ही इतिहास में हैं, इसलिए Git उन्हें विलय के रूप में मानता है। रिवर्ट कमिट को पूर्ववत करें, फिर दोबारा मर्ज करें।

मैं उस मर्ज को कैसे पूर्ववत करूँ जो अभी भी प्रगति पर है?

git merge --abort चलाएँ. यह मर्ज को रोकता है और फ़ाइलों को आपके शुरू करने से पहले जैसी स्थिति में लौटा देता है।

सूत्र

अन्य उत्पादों के बारे में दावों की जाँच उनके आधिकारिक पेजों के विरुद्ध 7 नवंबर 2026 पर की गई। कीमतें और सुविधाएँ बदलती हैं; विक्रेताओं के पृष्ठ सत्य का स्रोत हैं।