গিট রিভার্ট
রিভার্ট কি?
git revert দিয়ে তুমি কোনো কমিটের চেইঞ্জ বাতিল করতে পারো — কিন্তু হিস্ট্রি মুছে না! এটা একটা নতুন কমিট তৈরি করে যেটা আগের কমিটের উল্টো কাজ করে।
reset vs revert
| reset | revert | |
|---|---|---|
| হিস্ট্রি | মুছে ফেলে ❌ | রেখে দেয় ✅ |
| নতুন কমিট | না | হ্যাঁ |
| পুশ করার পর | ঝুঁকিপূর্ণ ⚠️ | নিরাপদ ✅ |
| টিমে কাজ | সমস্যা হতে পারে | সমস্যা হবে না |
সহজ কথায়:
reset= সময়ে পিছনে যাওয়া (হিস্ট্রি মুছে যায়)revert= ভুলটা ঠিক করে নতুন কমিট করা (হিস্ট্রি থাকে)
কিভাবে ব্যবহার করবে?
# হিস্ট্রি দেখো
git log --oneline
# a1b2c3d (HEAD -> main) বাগওয়ালা কমিট
# b2c3d4e ভালো কমিট
# c3d4e5f প্রথম কমিট
# শেষ কমিট রিভার্ট করো
git revert HEAD
গিট একটা এডিটর খুলবে কমিট মেসেজের জন্য। ডিফল্ট মেসেজ রাখতে পারো, অথবা বদলাতে পারো। সেভ করে বেরিয়ে এসো।
আউটপুট:
[main d5e6f7g] Revert "বাগওয়ালা কমিট"
1 file changed, 1 deletion(-)
এখন হিস্ট্রি দেখো:
git log --oneline
# d5e6f7g (HEAD -> main) Revert "বাগওয়ালা কমিট"
# a1b2c3d বাগওয়ালা কমিট
# b2c3d4e ভালো কমিট
# c3d4e5f প্রথম কমিট
দেখো — পুরানো কমিট হিস্ট্রিতে আছে, কিন্তু তার চেইঞ্জ বাতিল হয়ে গেছে!
নির্দিষ্ট কমিট রিভার্ট
শেষেরটা না, মাঝখানের কোনো কমিট রিভার্ট করতে:
git revert b2c3d4e
মেসেজ ছাড়া রিভার্ট
এডিটর না খোলে মেসেজ দিতে:
git revert HEAD --no-edit
কখন revert ব্যবহার করবে?
- কোড গিটহাবে পুশ করার পরে কমিট বাতিল করতে চাইলে
- টিমে কাজ করলে
- হিস্ট্রি সংরক্ষণ করতে চাইলে
কখন reset ব্যবহার করবে?
- কোড এখনো পুশ করোনি
- একা কাজ করছো
- হিস্ট্রি পরিষ্কার রাখতে চাও
টিপ: সন্দেহ থাকলে সবসময়
revertব্যবহার করো। এটা নিরাপদ!