GitIntermediate
reset, revert, checkout — ভুল সংশোধন
commit না হওয়া ও হওয়া পরিবর্তন কীভাবে ফিরিয়ে আনা যায় — বাংলায়।
14টি অংশবাংলা ভাষায়
কোন ধাপে কীভাবে undo করবেন
| অবস্থা | কমান্ড | কী দেয় |
|---|---|---|
| Working dir পরিবর্তন | git restore file | ফাইল পুরোনো অবস্থায় |
| Staging এ আছে | git restore --staged file | stage থেকে বের |
| সর্বশেষ commit ভুল | git commit --amend | fix |
| commit করা যায়নি | git reset --soft HEAD~1 | commit মুছে stage-এ রাখে |
| local commit বাদ | git reset --hard HEAD~1 | commit ও পরিবর্তন বাদ |
| push হয়ে গেছে | git revert <hash> | নতুন commit দিয়ে উল্টে |
git restore — working dir undo
git restore app.js # file এর change ফেলে দাও
git restore . # সব ফাইল ফেলে দাওgit reset
সবচেয়ে গুরুত্বপূর্ণ তিনটাbash
bash
git reset --soft HEAD~1 # commit undo, change staged
git reset --mixed HEAD~1 # commit undo, change unstaged (default)
git reset --hard HEAD~1 # commit undo + change বাদ (জোরে সাবধান)
git reset <hash> # যে commit-এ ফিরে যেতে চান
# upstream ভুলে — সবচেয়ে নিরাপদ path
git reset --hard origin/main # রিমোটের অবস্থায়সতর্কতা
--hard অপরিবর্তনীয় — uncommitted কাজ এবং commit উভয়ই মুছে ফেলে। ব্যবহারের আগে মনে করে নিন, বা stash দিয়ে ব্যাকআপ রাখুন।
git revert — push হওয়ার পরে
git revert 8f3a2b1
# একটি নতুন commit তৈরি হয় যা পুরোনোটির বিপরীত
# ইতিহাস অপরিবর্তিত — টিমের জন্য নিরাপদgit checkout (পুরোনো রীতি)
পুরোনো গাইডে git checkout -- file বা git checkout <hash> — ধরণের কমান্ড পাবেন। git restore ও git switch হলো এর আধুনিক বিভাজন, পড়তে সহজ।
কোনটা কখন ব্যবহার করবেন
- push হয়নি — reset ব্যবহার করুন (history rewrite করার সুযোগ আছে)
- push হয়েছে, টিম/প্রোডাকশনে আছে — revert ব্যবহার করুন
- শুধু stage ফাঁকা — restore --staged
রবীন্দ
প্রতিটি undo-র আগে git status দেখুন। চোখের সামনে কী অবস্থা তা বোঝা সহজ — panic কম।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।