যারা নিয়মিত Git এর সাথে কাজ করেন তাদের জন্য ইতিহাস ম্যানিপুলেট করা খুবই সাধারণ। প্রকৃতপক্ষে, বিকাশকারীদের প্রায়শই গিট ইতিহাস থেকে প্রতিশ্রুতিগুলি সরাতে হয়। সৌভাগ্যবশত, গিট এই অপারেশন সম্ভব করার জন্য অনেক কমান্ড প্রদান করে।
চলুন এটা পেতে 😎.
গিট হিস্ট্রি ম্যানিপুলেট করার আগে, নিশ্চিত করুন যে আপনার ওয়ার্কিং ডিরেক্টরীটি গিট স্ট্যাটাস কমান্ড ব্যবহার করে যেকোনো পরিবর্তন থেকে পরিষ্কার।
একটি দূরবর্তী সার্ভার থেকে প্রতিশ্রুতি মুছে ফেলার জন্য, প্রথমে, আপনাকে সেগুলিকে আপনার স্থানীয় ইতিহাস থেকে সরাতে হবে।
আপনি যে কমিটগুলি সরাতে চান তা আপনার কমিট ইতিহাসের শীর্ষে রাখা হলে, HEAD
অবজেক্টের সাথে git reset --hard
কমান্ডটি এবং আপনি যে কমিটগুলি সরাতে চান তার সংখ্যা ব্যবহার করুন।
git reset --hard HEAD~1
এই কমান্ডটি সর্বশেষ কমিট মুছে ফেলবে।
git reset --hard HEAD~3
এই কমান্ডটি সর্বশেষ তিনটি কমিট মুছে ফেলবে।
আপনি একটি কমিট হ্যাশ ব্যবহার করে একটি নির্দিষ্ট কমিট পর্যন্ত সরাতে পারেন, যেমন:
git reset --hard <hash>
যদি, আপনি অ-পরপর কমিটগুলি সরাতে চান তবে আপনাকে একটি ইন্টারেক্টিভ রিবেস ব্যবহার করতে হবে।
git reflog
কমান্ড ব্যবহার করে আপনি যে সমস্ত কমিটগুলি সরাতে চান সেগুলি সম্বলিত শেষ কমিট হ্যাশ খুঁজুন।git rebase -i <hash>
দিয়ে একটি ইন্টারেক্টিভ রিবেস শুরু করুন।git rebase --continue
বা রিবেস বাতিল করে আবার শুরু করুন।রিমোট থেকে কমিট মুছে ফেলতে, আপনাকে গিট পুশ কমান্ড ব্যবহার করে আপনার স্থানীয় পরিবর্তনগুলি রিমোটে পুশ করতে হবে।
git push origin HEAD --force
যেহেতু আপনার স্থানীয় ইতিহাস দূরবর্তী ইতিহাস থেকে বিচ্ছিন্ন, তাই আপনাকে force
বিকল্পটি ব্যবহার করতে হবে।
আপনি দেখতে পাচ্ছেন, গিট রিমোট সার্ভার থেকে কমিট মুছে ফেলা সহজ করে তোলে।
যাইহোক, force
বিকল্পের সাথে git push
কমান্ড ব্যবহার করার সময় আপনাকে সতর্কতা অবলম্বন করতে হবে কারণ আপনি যদি সতর্ক না হন তবে আপনি অগ্রগতি হারাতে পারেন।
পড়ার জন্য আপনাকে ধন্যবাদ!