সমস্ত পরিবর্তনগুলি বাতিল করার জন্য বিকল্প পদ্ধতি:
আমি একটি মার্জ করার পরে এবং চেকআউটটি তত্ক্ষণাত বিকাশ করতে ভুলে যাওয়ার পরে এই প্রশ্নটি পেয়েছি । আপনি এটি অনুমান করেছেন: আমি সরাসরি মাস্টারে কয়েকটি ফাইল সংশোধন করতে শুরু করেছি । ডি ওহ! যেহেতু আমার পরিস্থিতি খুব কমই অনন্য (আমরা সকলেই এটি করে ফেলেছি, আমরা তা করি নি; ->), আমি আবার একটি বিকাশের মতো মাস্টারকে দেখাতে সমস্ত পরিবর্তনগুলি বাতিল করার জন্য ব্যবহার করেছিলাম ।
একটি করছেন পরে git diff
কি ফাইল পরিবর্তন করা হয়েছে দেখতে এবং আমার ত্রুটির সুযোগ মূল্যায়ন করার আমি মৃত্যুদন্ড কার্যকর:
git stash
git stash clear
প্রথমে সমস্ত পরিবর্তন স্থির করার পরে সেগুলি পরে সাফ করা হয়েছে। মাস্টার হিসাবে ত্রুটিযুক্ত ফাইলগুলিতে করা সমস্ত পরিবর্তন চলে গিয়েছিল এবং সমতা পুনরুদ্ধার করা হয়েছিল।
ধরা যাক আমি এখন এই পরিবর্তনগুলি পুনরুদ্ধার করতে চাইছিলাম। আমি এটা করতে পারবো. প্রথম পদক্ষেপটি হ'ল স্ট্যাশগুলির হ্যাশ সন্ধান করা যা আমি স্রেফ সাফ / বাদ দিয়েছি:
git fsck --no-reflog | awk '/dangling commit/ {print $3}'
হ্যাশ শিখার পরে, আমি সফলভাবে এর সাথে আপমুক্ত পরিবর্তনগুলি পুনরুদ্ধার করেছি:
git stash apply hash-of-cleared-stash
আমি সত্যিই এই পরিবর্তনগুলি পুনরুদ্ধার করতে চাইনি, কেবল তাদের বৈধ করে তুলতে চাইলে বৈধতা চেয়েছিলাম, তাই আমি সেগুলি আবার সাফ করে দিয়েছি।
আর একটি বিকল্প হ'ল স্ট্যাশগুলি পরিবর্তনগুলি মুছার পরিবর্তে একটি ভিন্ন শাখায় প্রয়োগ করা । সুতরাং ভুল শাখায় কাজ করা থেকে আসা পরিবর্তনগুলি সাফ করার শর্তাবলী, stash
আপনাকে আপনার বু-বু থেকে পুনরুদ্ধার করতে অনেক নমনীয়তা দেয়।
যাইহোক, আপনি যদি একটি শাখায় পরিবর্তনগুলি সাফ করার জন্য একটি বিপরীত উপায় চান, তবে পূর্ববর্তী এই ব্যবহারের ক্ষেত্রে কম বিপজ্জনক উপায়।
git reset --hard HEAD^