Git revert Command
In this page:
git revert commit_hash
git revert start_hash..end_hash
git revert --no-commit commit_hash
Git Revert क्या है?
git revert एक बिल्कुल नई commit बनाता है जिसके changes exactly एक पहले वाली commit को cancel कर देते हैं, उस commit को history से delete करने के बजाय। यह इसे किसी branch पर कुछ undo करने के लिए safe choice बनाता है जिसे दूसरे लोग पहले से pull कर चुके हैं, क्योंकि किसी की भी history rewrite नहीं होती।
उदाहरण: What is Git Revert?
git revert a1b2c3d
कई Commits Revert करना
commits की एक range revert करना (जैसे git revert A..B) उन्हें एक undo में squash नहीं करता — Git range में हर original commit के लिए एक अलग revert commit बनाता है, reverse order में apply किया गया। यह history को readable रखता है, क्योंकि आप exactly trace कर सकते हैं कि हर revert किस original commit से corresponds करता है।
उदाहरण: Reverting Multiple Commits
git revert a1b2c3d..e4f5g6h
बिना Commit किए Revert करना
--no-commit pass करना revert के file changes perform करता है और उन्हें तुरंत revert commit बनाए बिना stage करता है, आपको diff inspect करने, इसे tweak करने, या finalize करने से पहले कई reverts को एक single commit में bundle करने का मौका देते हुए।
उदाहरण: Reverting without Committing
git revert --no-commit a1b2c3d
एक Merge Commit Revert करना
एक merge commit revert करना default रूप से ambiguous है, क्योंकि एक merge की दो parent lines होती हैं और Git को जानना ज़रूरी है कि इसके against revert करने के लिए कौन सी "mainline" है — आप इसे -m 1 से specify करते हैं (आमतौर पर वह branch जिसमें आपने merge किया)। parent number गलत करना चुपचाप history की गलत side revert कर देता है।
उदाहरण: Reverting a Merge Commit
git revert -m 1 a1b2c3d
Revert Conflicts Resolve करना
अगर वह code जिसे एक revert undo करने की कोशिश कर रहा है बाद की commits द्वारा तब से बदल दिया गया हो, Git reverse patch को cleanly apply नहीं कर सकता और एक merge की तरह ही एक conflict raise करता है। आप इसे same तरीके से resolve करते हैं — conflicted files edit करें, उन्हें stage करें, और git revert --continue चलाएँ।
उदाहरण: Resolving Revert Conflicts
git revert a1b2c3d
# fix conflicts in file.txt
git add file.txt
git revert --continue
- एक pushed commit undo करने के लिए
git resetइस्तेमाल करना, जबकिgit revertsafe है क्योंकि यह history rewrite करने के बजाय एक नई commit add करता है। - यह उम्मीद करना कि
git revert A..Bएक single undo commit बनाएगा, जबकि यह range में प्रति commit एक revert commit बनाता है। - बिना
-m 1के एक merge commit revert करना, जो fail हो जाता है क्योंकि Git को जानना ज़रूरी है कि कौन सा parent रखना है।
Chapter Quiz — Complete all 6 topics to unlock
0/6 topics done
Complete these topics first: