मेरे मामले में, मैंने अपनी शाखा (कहते हैं: मेरी शाखा) को किसी अन्य सुविधा शाखा (सुविधा-शाखा) में विलय कर दिया, लेकिन मास्टर नहीं। इसलिए मेरी शाखा का इतिहास इस प्रकार था:
my-branch (before merge)
---master----m1----m2----m3---m4
इसे दूसरे के साथ विलय करने के बाद, feature-branch
जो f1, f2
गुरु के शीर्ष पर था , यह इस तरह बन गया:
my-branch (after merge)
---master----m1----m2----f1----f2----m3---m4----mergecommit
ऐसा शायद इसलिए हुआ क्योंकि अपनी शाखा पर काम करते हुए मैंने 2 कमिट के बाद मास्टर से मर्ज किया था, या 2 शाखाओं में से एक मास्टर के साथ तारीख तक नहीं हो सकता था। तो इस मामले git revert -m 1
में काम नहीं कर रहा था क्योंकि यह उन लोगों को छोड़ रहा था f1
औरf2
बीच में कमिट करता था।
समाधान सरल था, जो सामान्य परिदृश्यों के मामले में काम करेगा, जहां हमारे बीच में कमिट नहीं है:
git rebase -i HEAD~6
6 के बजाय उपयुक्त संख्या का उपयोग करें जिसके आधार पर आप कितने अतीत को बदलना चाहते हैं। अब विम एडिटर खोला जाता है, बस अवांछित चिह्न को drop
उसी तरह चिह्नित करें और :wq
सत्यापन लॉग का उपयोग करना छोड़ दें :
git log --oneline
बल धक्का
git push -f
अब दूरस्थ शाखा पिछले राज्य में होनी चाहिए।