# git reset: soft, mixed, hard — Git Fundamentals: Commits, Branches और Collaboration

Source: https://www.skillbyai.com/hi/git/git-reset-modes

> git reset --soft, --mixed और --hard से branch पीछे ले जाएँ और जानें कि हर एक कितना हटाता है।

## तीन प्रकार

`--soft` बदलावों को स्टेज्ड रखता है, `--mixed` (डिफ़ॉल्ट) उन्हें अनस्टेज्ड रखता है, `--hard` उन्हें पूरी तरह मिटा देता है।

```bash
git reset --soft HEAD~1    # undo commit, keep changes staged
git reset HEAD~1           # undo commit, keep changes unstaged
git reset --hard HEAD~1    # undo commit AND discard changes
```

## --hard विनाशकारी है

`git reset --hard` अनकमिटेड काम को स्थायी रूप से मिटा देता है। इसे चलाने से पहले `git status` दोबारा जाँच लें — कोई पुष्टि संदेश नहीं आता।

**Quiz:** कौन-सा reset मोड बदलावों को पूरी तरह मिटा देता है?

- [ ] --soft
- [x] --hard
- [ ] --mixed
- [ ] --keep

*Answer:* --hard. --hard कमिट हिस्ट्री और वर्किंग डायरेक्टरी दोनों को रीसेट करता है, अनकमिटेड काम मिटा देता है।
