কম্পিউটার টিউটোরিয়াল

Git Pull উন্ডো (Undo) করা: git reset ব্যবহার করে

git pull কী করে?

git pull = git fetch + git merge। এটি রিমোট রিপোজিটরির পরিবর্তনগুলো লোকালে আনে এবং মার্জ করে।

git pull উন্ডো করার উপায়: git reset

সিধা "undo pull" কমান্ড নেই। git reset ব্যবহার করে লোকাল রিপোজিটরি পূর্ববর্তী কমিটে ফেরত নেওয়া যায়।

ধাপে ধাপে উদাহরণ

১. প্রথমে pull করুন

git pull
# আউটপুট: Updating 77e7fc0..a8336fa
# Fast-forward README.md | 1 +

২. পূর্ববর্তী কমিটের হ্যাশ পেতে git log দেখুন

git log --oneline -5
# 77e7fc0 (HEAD~1) Previous commit message
# a8336fa (HEAD) Latest commit (pulled)

৩. হার্ড রিসেট করে পূর্ববর্তী কমিটে ফেরত যান

git reset 77e7fc0 --hard

অথবা রিলেটিভ রেফারেন্স ব্যবহার করুন:

git reset HEAD~1 --hard

ফ্ল্যাগের মানে

ফ্ল্যাগব্যবহার
--hardওয়ার্কিং ডিরেক্টরি, স্টেজিং এরিয়া এবং HEAD সব রিসেট করে (সবচেয়ে ডেঞ্জারাস)۔
--mixed (ডিফল্ট)HEAD এবং স্টেজিং এরিয়া রিসেট করে, ওয়ার্কিং ডিরেক্টরি রেখে দেয়।
--softশুধু HEAD রিসেট করে, স্টেজিং এবং ওয়ার্কিং ডিরেক্টরি অপরিবর্তিত।

সতর্কতা ⚠️

  • --hard ব্যবহার করলে **অনকমিটেড চেঞ্জগুলো 永久に হারিয়ে যাবে**।
  • রিসেট করার আগে git status দিয়ে চেক করুন কোনো আনকমিটেড কাজ আছে কিনা।
  • আপনার কমিটগুলো রিমোটে পুশ করা থাকলে git push --force দরকার হতে পারে (সহযোগীদের সাথে কոঅর্ডিনেট করুন)।

বিকল্প: git reflog থেকে রিকভারি

ভুলে গেলে git reflog দিয়ে HEAD-এর ইতিহাস দেখুন এবং 잃어버린 কমিট রিকভার করুন:

git reflog
git reset  --hard

নিষ্কর্ষ

git reset --hard HEAD~1 হলো git pull উন্ডো করার সবচেয়ে দ্রুত উপায়। কিন্তু এটি ডেস্ট্রাক্টিভ। সতর্কতা অবলম্বন করে এবং অনুপ্রয়োজনীয় ফোর্স পুশ এড়াতে চেষ্টা করুন।

  1. ম্যাক টার্মিনাল ব্যবহার করার বিগিনার্স গাইড

  2. Git-এ 'init' কমান্ড анডু করার পদ্ধতি

  3. গিট (Git) বIgিনার গাইড

  4. সমাধান: 'git' অভ্যন্তরীণ বা বাহ্যিক কমান্ড হিসেবে চিনা যাচ্ছে না