পূর্বের ভার্শনে যাওয়া
কেন পুরানো ভার্শনে যেতে চাইবে?
ধরো তুমি কোডে কিছু চেইঞ্জ করেছো, কিন্তু সেটা কাজ করছে না। আগের ভার্শনে সব ঠিক ছিলো। এখন তুমি চাও — “আমাকে আগের অবস্থায় ফিরিয়ে দাও!” গিটে এটা করা খুবই সহজ।
আগে কমিট হিস্ট্রি দেখো
git log --oneline
আউটপুট:
a1b2c3d (HEAD -> main) তৃতীয় কমিট
b2c3d4e দ্বিতীয় কমিট
c3d4e5f প্রথম কমিট
এখানে HEAD হলো তুমি এখন যেখানে আছো।
শুধু দেখতে চাও? (checkout)
যদি শুধু আগের একটা কমিটে গিয়ে দেখতে চাও — তখনকার কোড কেমন ছিলো — কিন্তু কিছু চেইঞ্জ করবে না:
git checkout c3d4e5f
এটা তোমাকে ঐ কমিটে নিয়ে যাবে। তুমি ফাইলগুলো দেখতে পারবে, কিন্তু এটা একটা “ভিজিটিং” মোড।
গিট তোমাকে বলবে: “You are in ‘detached HEAD’ state.” — ঘাবড়াবে না! এটা মানে তুমি শুধু দেখতে এসেছো।
আবার বর্তমানে ফিরে আসতে:
git checkout main
পুরোপুরি ফিরে যেতে চাও?
যদি চাও শেষ কমিটের চেইঞ্জটাই বাদ দিতে, তাহলে বিভিন্ন উপায় আছে। সেগুলো আমরা অ্যাডভান্সড সেকশনে (git reset, git revert) বিস্তারিত শিখবো।
এখন শুধু এটুকু জানো:
| কি করতে চাও | কমান্ড |
|---|---|
| আগের কমিট দেখতে চাও | git checkout <hash> |
| বর্তমানে ফিরে আসতে চাও | git checkout main |
| শেষ কমিট বাতিল করতে চাও | git revert (পরে শিখবো) |
| হিস্ট্রি থেকে মুছে দিতে চাও | git reset (পরে শিখবো) |
উদাহরণ
# হিস্ট্রি দেখো
git log --oneline
# আউটপুট:
# a1b2c3d (HEAD -> main) নোটস আপডেট
# b2c3d4e hello.txt চেইঞ্জ
# c3d4e5f প্রথম কমিট
# প্রথম কমিটে যাও
git checkout c3d4e5f
# ফাইলগুলো দেখো - প্রথম কমিটের অবস্থায় আছে!
cat hello.txt
# আবার বর্তমানে ফিরে এসো
git checkout main
মনে রাখো
git checkout = টাইম ট্রাভেল। আগের যেকোনো পয়েন্টে গিয়ে দেখে আসতে পারো, আবার ফিরেও আসতে পারো!
এবার চলো ব্রাঞ্চিং শিখি — গিটের সবচেয়ে পাওয়ারফুল ফিচারগুলোর একটা!