Skip to content

🔄 git revert āĻŦāύāĻžāĻŽ git reset ​

Git-āĻ āĻ•āĻ–āύāĻ“ āĻ•āĻ–āύāĻ“ āφāĻĒāύāĻŋ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ⧇ āĻĒ⧌āρāĻ›āĻžāύ, āϝ⧇āĻ–āĻžāύ⧇ āĻĒā§‚āĻ°ā§āĻŦ⧇āϰ āϕ⧋āύ āϭ⧁āϞ āĻ•āĻŽāĻŋāϟ āĻŦāĻžāϤāĻŋāϞ āĻŦāĻž āϏāĻ‚āĻļā§‹āϧāύ āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤ āĻāϜāĻ¨ā§āϝ Git āφāĻŽāĻžāĻĻ⧇āϰ āĻĻ⧁āϟāĻŋ āĻļāĻ•ā§āϤāĻŋāĻļāĻžāϞ⧀ āϟ⧁āϞ āĻĻā§‡ā§Ÿ:

  • git reset
  • git revert

āĻĻā§â€™āϟāĻŋāχ āĻ•āĻŽāĻŋāϟ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ­āĻŋāĻ¨ā§āύāĻ­āĻžāĻŦ⧇āĨ¤

✅ āĻĻā§āϰ⧁āϤ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āĻŸā§‡āĻŦāĻŋāϞ: ​

āĻŦāĻŋāώ⧟git resetgit revert
āĻ•āĻŽāĻŋāϟ āĻŽā§āϛ⧇ āĻĢ⧇āĻ˛ā§‡âœ… āĻšā§āϝāĻžāĻâŒ āύāĻž
āύāϤ⧁āύ āĻ•āĻŽāĻŋāϟ āϤ⧈āϰāĻŋ āĻ•āĻ°ā§‡âŒ āύāĻž (reset āĻļ⧁āϧ⧁ HEAD āĻŦāĻĻāϞāĻžā§Ÿ)✅ āĻšā§āϝāĻžāρ
Git History āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āĻ°ā§‡âœ… āĻšā§āϝāĻžāĻâŒ āύāĻž
āϟāĻŋāĻŽā§‡ āĻ•āĻžāĻœā§‡āϰ āϜāĻ¨ā§āϝ āύāĻŋāϰāĻžāĻĒāĻĻ❌ āύāĻžâœ… āĻšā§āϝāĻžāρ
āφāϗ⧇āϰ commit āĻĢāĻŋāϰāĻŋā§Ÿā§‡ āφāύāĻžâœ…âœ… (āĻ­āĻŋāĻ¨ā§āύāĻ­āĻžāĻŦ⧇)
Remote branch āĻ āĻŦā§āϝāĻŦāĻšāĻžāĻ°âŒ āϏāϤāĻ°ā§āĻ• āĻĨāĻžāĻ•āϤ⧇ āĻšā§Ÿâœ… āύāĻŋāϰāĻžāĻĒāĻĻ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§Ÿ

đŸ› ī¸ git reset āϕ⧀? ​

git reset āĻāĻ•āϟāĻŋ destructive operation, āϝāĻž āφāĻĒāύāĻžāϰ āĻ•āĻŽāĻŋāϟ history āĻĨ⧇āϕ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ…āĻ‚āĻļ āĻĒ⧁āϰ⧋āĻĒ⧁āϰāĻŋ āĻŽā§āϛ⧇ āĻĻā§‡ā§Ÿ (āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇ --hard āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϞ⧇)āĨ¤

đŸŽ¯ āωāĻĻāĻžāĻšāϰāĻŖ ā§§: āĻļ⧇āώ āĻ•āĻŽāĻŋāϟ āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧁āύ (staged āĻĢāĻžāχāϞāϏāĻš) ​

bash
git reset --soft HEAD~1
git reset --soft HEAD~1

đŸŽ¯ āωāĻĻāĻžāĻšāϰāĻŖ ⧍: āĻļ⧇āώ āĻ•āĻŽāĻŋāϟ āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§‡āϜāĻŋāĻ‚ āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧁āύ ​

bash
git reset --mixed HEAD~1
git reset --mixed HEAD~1

đŸŽ¯ āωāĻĻāĻžāĻšāϰāĻŖ ā§Š: āϏāĻŦ āĻ•āĻŋāϛ⧁ āĻšāĻžāϰāĻŋā§Ÿā§‡ āĻĢ⧇āϞ⧁āύ ​

bash
git reset --hard HEAD~1
git reset --hard HEAD~1

đŸ› ī¸ git revert āϕ⧀? ​

git revert āĻāĻ•āϟāĻŋ safe āĻ…āĻĒāĻžāϰ⧇āĻļāύāĨ¤ āĻāϟāĻŋ āφāϗ⧇āϰ āϭ⧁āϞ āĻ•āĻŽāĻŋāϟāϕ⧇ "āĻŦāĻžāϤāĻŋāϞ" āĻ•āϰ⧇ āύāϤ⧁āύ āĻāĻ•āϟāĻŋ āωāĻ˛ā§āĻŸā§‹ āĻ•āĻŽāĻŋāϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤

đŸŽ¯ āωāĻĻāĻžāĻšāϰāĻŖ ā§§: āĻļ⧇āώ āĻ•āĻŽāĻŋāϟ revert āĻ•āϰ⧁āύ ​

bash
git revert HEAD
git revert HEAD

đŸŽ¯ āωāĻĻāĻžāĻšāϰāĻŖ ⧍: āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āĻŽāĻŋāϟ revert āĻ•āϰ⧁āύ ​

bash
git revert d4e7a3f
git revert d4e7a3f

👉 āĻāϟāĻŋ āϏ⧇āχ āĻ•āĻŽāĻŋāĻŸā§‡āϰ āĻŦāĻŋāĻĒāϰ⧀āϤ āĻ•āĻžāϜ āĻ•āϰ⧇ āύāϤ⧁āύ āĻāĻ•āϟāĻŋ āĻ•āĻŽāĻŋāϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ⧇āĨ¤

đŸ§Ē āϤ⧁āϞāύāĻžāĻŽā§‚āϞāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āωāĻĻāĻžāĻšāϰāĻŖ ​

đŸŽŦ āϧāϰ⧁āύ: āφāĻĒāύāĻžāϰ Repo-āϤ⧇ ā§ŠāϟāĻŋ āĻ•āĻŽāĻŋāϟ āφāϛ⧇ ​

A --> B --> C  (HEAD)
A --> B --> C  (HEAD)

✅ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ git reset --hard B āĻ•āϰ⧇āύ: ​

A --> B   (C āĻ•āĻŽāĻŋāϟ āĻĒ⧁āϰ⧋āĻĒ⧁āϰāĻŋ āĻ—āĻžā§Ÿā§‡āĻŦ)
A --> B   (C āĻ•āĻŽāĻŋāϟ āĻĒ⧁āϰ⧋āĻĒ⧁āϰāĻŋ āĻ—āĻžā§Ÿā§‡āĻŦ)

✅ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ git revert C āĻ•āϰ⧇āύ: ​

A --> B --> C --> C'   (C' = C āĻāϰ āĻŦāĻŋāĻĒāϰ⧀āϤ)
A --> B --> C --> C'   (C' = C āĻāϰ āĻŦāĻŋāĻĒāϰ⧀āϤ)

âš ī¸ āϟāĻŋāĻŽā§‡ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϏāĻŽā§Ÿ āĻ•ā§ŒāĻļāϞ ​

āĻ•āĻžāĻœā§‡āϰ āϧāϰāύreset āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ?revert āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ?
āύāĻŋāĻœā§‡āϰ local branch✅ āĻšā§āϝāĻžāĻâŒ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχ
āϟāĻŋāĻŽā§‡āϰ shared branch (āϝ⧇āĻŽāύ main)❌ āύāĻžâœ… āĻ…āĻŦāĻļā§āϝāχ
mistake undo✅ reset āĻ•āϰāĻž āϝāĻžā§Ÿâœ… revert āĻ•āϰāĻžāĻ“ āϝāĻžā§Ÿ
Git history āĻĒāϰāĻŋāĻ¸ā§āĻ•āĻžāϰ āĻ•āϰāĻ¤ā§‡âœ… reset āĻ­āĻžāĻ˛âŒ āύāĻž

🧠 reset vs revert āϕ⧇ āĻŦā§‹āĻāĻžāϰ āϏāĻšāϜ āωāĻĒāĻžā§Ÿ: ​

āĻĒā§āϰāĻļā§āύāωāĻ¤ā§āϤāϰ
āφāĻŽāĻŋ āφāϗ⧇āϰ commit āĻŽā§āϛ⧇ āĻĢ⧇āϞāϤ⧇ āϚāĻžāχgit reset
āφāĻŽāĻŋ āφāϗ⧇āϰ commit āĻāϰ effect āĻŦāĻžāϤāĻŋāϞ āĻ•āϰāϤ⧇ āϚāĻžāχ, history āϰ⧇āϖ⧇git revert
āφāĻŽāĻŋ team āĻāϰ āϏāĻ™ā§āϗ⧇ āĻ•āĻžāϜ āĻ•āϰāĻ›āĻŋ, remote branch āĻ push āĻ•āϰāϤ⧇ āĻšāĻŦ⧇git revert
āφāĻŽāĻŋ history āĻāĻ•āĻĻāĻŽ āĻĒāϰāĻŋāĻ¸ā§āĻ•āĻžāϰ āϰāĻžāĻ–āϤ⧇ āϚāĻžāχ, āĻļ⧁āϧ⧁ āφāĻŽāĻžāϰ local āĻgit reset

✅ āĻ•āĻŋāϛ⧁ āφāϰāĻ“ āωāĻĻāĻžāĻšāϰāĻŖ ​

ā§§. āĻļ⧇āώ ⧍āϟāĻŋ āĻ•āĻŽāĻŋāϟ revert āĻ•āϰ⧁āύ ​

bash
git revert HEAD~1
git revert HEAD~1
git revert HEAD~1
git revert HEAD~1

⧍. āĻāĻ•āϏāĻžāĻĨ⧇ āĻ•ā§Ÿā§‡āĻ•āϟāĻŋ āĻ•āĻŽāĻŋāϟ revert āĻ•āϰ⧁āύ (range) ​

bash
git revert HEAD~3..HEAD
git revert HEAD~3..HEAD

ā§Š. āĻāĻ•āϟāĻŋ reset āĻ•āϰ⧇ āφāĻŦāĻžāϰ push āĻ•āϰāϤ⧇ āϚāĻžāύ ​

bash
git reset --hard HEAD~1
git push origin main --force
git reset --hard HEAD~1
git push origin main --force

âš ī¸ āϏāϤāĻ°ā§āĻ•āϤāĻž: āϟāĻŋāĻŽā§‡ āύāĻž āĻĨāĻžāĻ•āϞ⧇ āĻŦāĻž āĻŦ⧁āĻā§‡ āĻ•āϰāϞ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤

✅ Bonus Tip: Commit History āĻĻ⧇āϖ⧁āύ ​

bash
git log --oneline
git log --oneline

✅ āωāĻĒāϏāĻ‚āĻšāĻžāϰ ​

āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ
āύāĻŋāĻœā§‡ āϭ⧁āϞ āĻ•āϰ⧇āĻ›āĻŋ, remote āĻ push āĻ•āϰāĻŋāύāĻŋgit reset
āϭ⧁āϞ āĻ•āϰ⧇āĻ›āĻŋ āĻāĻŦāĻ‚ remote āĻ push āĻ•āϰ⧇āĻ›āĻŋgit revert
āχāϤāĻŋāĻšāĻžāϏ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āφāύāϤ⧇ āϚāĻžāχgit reset
āχāϤāĻŋāĻšāĻžāϏ āϰāĻžāĻ–āϤ⧇ āϚāĻžāχ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ•āĻžāϜ āĻŦāĻžāϤāĻŋāϞgit revert

âœī¸ āωāĻĒāϏāĻ‚āĻšāĻžāϰ āωāĻĻāĻžāĻšāϰāĻŖ āϏāĻš ​

āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻŽāύ āĻ…āĻŦāĻ¸ā§āĻĨāĻžā§Ÿ āĻĨāĻžāϕ⧇āύ:

  • āϭ⧁āϞ āĻ•āϰ⧇ .env āĻĢāĻžāχāϞ push āĻ•āϰ⧇ āĻĢ⧇āϞ⧇āϛ⧇āύ
  • āĻāĻ–āύ āφāĻĒāύāĻŋ history clear āĻ•āϰāϤ⧇ āϚāĻžāύ

āϤāĻŦ⧇:

bash
git reset --hard HEAD~1
git push --force
git reset --hard HEAD~1
git push --force

āĻ•āĻŋāĻ¨ā§āϤ⧁ āϝāĻĻāĻŋ history āϰāĻžāĻ–āϤ⧇ āϚāĻžāύ āĻāĻŦāĻ‚ āĻļ⧁āϧ⧁ effect āĻŦāĻžāϤāĻŋāϞ āĻ•āϰāϤ⧇ āϚāĻžāύ:

bash
git revert HEAD
git revert HEAD

Released under the MIT License.