← Back to Git Course | Chapter 5: Undoing Changes | Lesson 2 of 6

Git revert Command

git revert एक नया note लिखने जैसा है जो कहता है 'मैंने पहले जो लिखा उसे ignore करो' बजाय पुराना page फाड़ने के। History रहती है और गलती cancel हो जाती है।
Syntax
bash
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?

bash
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

bash
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

bash
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

bash
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

bash
git revert a1b2c3d
# fix conflicts in file.txt
git add file.txt
git revert --continue
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. एक pushed commit undo करने के लिए git reset इस्तेमाल करना, जबकि git revert safe है क्योंकि यह history rewrite करने के बजाय एक नई commit add करता है।
  2. यह उम्मीद करना कि git revert A..B एक single undo commit बनाएगा, जबकि यह range में प्रति commit एक revert commit बनाता है।
  3. बिना -m 1 के एक merge commit revert करना, जो fail हो जाता है क्योंकि Git को जानना ज़रूरी है कि कौन सा parent रखना है।
🔒

Chapter Quiz — Complete all 6 topics to unlock

0/6 topics done

Complete these topics first:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.