Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

গিট রিসেট

রিসেট কি?

git reset দিয়ে তুমি কমিট হিস্ট্রি থেকে কমিট মুছে ফেলতে পারো। মনে করো — “শেষ কমিটটা ভুল হয়ে গেছে, বাতিল করতে চাই।”

সাবধান: রিসেট হিস্ট্রি চেইঞ্জ করে। গিটহাবে পুশ করার পর রিসেট করা ঝুঁকিপূর্ণ!

তিন ধরনের রিসেট

১. –soft (সবচেয়ে নিরাপদ)

git reset --soft HEAD~1

কি হবে:

  • শেষ কমিটটা বাতিল হবে
  • কিন্তু ফাইলের চেইঞ্জ স্টেজিং এরিয়াতেই থাকবে
  • মানে তুমি চাইলে নতুন মেসেজ দিয়ে আবার কমিট করতে পারো

২. –mixed (ডিফল্ট)

git reset HEAD~1

বা:

git reset --mixed HEAD~1

কি হবে:

  • শেষ কমিটটা বাতিল হবে
  • ফাইলের চেইঞ্জ ওয়ার্কিং ডিরেক্টরিতে থাকবে (আনস্টেজড)
  • git add থেকে আবার শুরু করতে হবে

৩. –hard (সবচেয়ে বিপজ্জনক!)

git reset --hard HEAD~1

কি হবে:

  • শেষ কমিটটা বাতিল হবে
  • ফাইলের চেইঞ্জও মুছে যাবে!
  • ফিরিয়ে আনার কোনো সহজ উপায় নেই!

HEAD~1 মানে কি?

  • HEAD = তুমি এখন যেখানে আছো (শেষ কমিট)
  • HEAD~1 = শেষ কমিটের ১টা আগে
  • HEAD~2 = শেষ কমিটের ২টা আগে
  • HEAD~3 = শেষ কমিটের ৩টা আগে

উদাহরণ

# হিস্ট্রি দেখো
git log --oneline
# a1b2c3d (HEAD -> main) তৃতীয় কমিট
# b2c3d4e দ্বিতীয় কমিট
# c3d4e5f প্রথম কমিট

# শেষ কমিট soft reset (চেইঞ্জ স্টেজড থাকবে)
git reset --soft HEAD~1

# হিস্ট্রি আবার দেখো
git log --oneline
# b2c3d4e (HEAD -> main) দ্বিতীয় কমিট
# c3d4e5f প্রথম কমিট

তৃতীয় কমিটটা গায়েব! কিন্তু ফাইলের চেইঞ্জ এখনো আছে।

কোন রিসেট কখন ব্যবহার করবে?

রিসেটচেইঞ্জ কোথায় থাকেকখন ব্যবহার করবে
--softস্টেজিং এরিয়াতেকমিট মেসেজ বদলাতে চাও
--mixedওয়ার্কিং ডিরেক্টরিতেকমিট বাতিল করতে চাও, চেইঞ্জ রাখতে চাও
--hardসব মুছে যায়সবকিছু বাতিল করতে চাও

টিপ: শুরুতে --soft ব্যবহার করো। --hard শুধু তখনই ব্যবহার করো যখন ১০০% নিশ্চিত চেইঞ্জগুলো আর দরকার নেই!