ভুল বাতিল: restore, reset, revert — সঠিক ও বিপজ্জনক ব্যবহার
সাক্ষাৎকার ও বাস্তব কাজের সবচেয়ে চাহিদাপূর্ণ বিষয়গুলোর একটি হলো ইতিমধ্যে করা কাজ বাতিল করা। আমরা তিনটি ভিন্ন 'গভীরতার' বাতিল টুল নিয়ে আলোচনা করব এবং সবচেয়ে গুরুত্বপূর্ণ বিষয়টিতে মনোযোগ দেব: নির্দিষ্ট পরিস্থিতি দেখাব যেখানে reset --hard দলগত কাজ ধ্বংস করে দেয়, আর revert একটি নিরাপদ বিকল্প। ভালো ও খারাপ সিদ্ধান্তের বাস্তব পরিণতি সহ উদাহরণ।
- আপনি আত্মবিশ্বাসের সাথে যেকোনো ধাপে পরিবর্তন বাতিল করতে পারবেন: ওয়ার্কিং ডিরেক্টরি, ইনডেক্স ও কমিট ইতিহাসে।
- আপনি reset ও revert-এর মৌলিক পার্থক্য বুঝতে পারবেন এবং জানবেন কোন পরিস্থিতিতে কোনটি ব্যবহার করা উপযুক্ত।
- আপনি সাধারণ ভুলগুলো এড়াতে শিখবেন যা নতুনরা দলগত রিপোজিটরিতে পরিবর্তন বাতিল করতে গিয়ে করে থাকে।
จุดเริ่มต้นของบทเรียน
Git restore: ফাইলের জন্য 'বাতিল' বোতাম
- Git restore — অ-কমিটকৃত পরিবর্তন বাতিল করা
- এটি একটি সম্পাদকের 'বাতিল' বোতামের মতো কাজ করে
- নিরাপদ — কমিটের ইতিহাস পরিবর্তন করে না
- ফাইলগুলোকে সর্বশেষ সংরক্ষিত অবস্থায় ফিরিয়ে আনে
মনে করুন, আপনি ভুলবশত একটি ফাইল ত্রুটি সহ সংরক্ষণ করেছেন এবং সবকিছু আগের মতো ফিরিয়ে আনতে চান। Git restore একটি যাদুকরী বাতিল বোতামের মতো কাজ করে — এটি ফাইলগুলোকে সর্বশেষ নথিভুক্ত অবস্থায় ফিরিয়ে আনে। অন্যান্য বাতিল কমান্ডের থেকে ভিন্ন, restore শুধুমাত্র অ-কমিটকৃত পরিবর্তনের সাথে কাজ করে এবং আপনার প্রকল্পের ইতিহাসের জন্য সম্পূর্ণ নিরাপদ। এটি প্রথম টুল যা আপনার ব্যবহার করা উচিত যখন ভুলবশত সম্পাদনা করা হয়েছে এবং ইতিহাসের কোনো ঝুঁকি ছাড়াই দ্রুত পরিস্থিতি ঠিক করতে হবে।
ওয়ার্কিং ডিরেক্টরিতে পরিবর্তন বাতিল
- git restore file.txt — ফাইলটিকে সর্বশেষ কমিটে ফিরিয়ে আনা
- ওয়ার্কিং ডিরেক্টরির সব পরিবর্তন বাতিল করে
- নিরাপদ — সম্পাদকের মাধ্যমে পরিবর্তন ফিরিয়ে আনা যায়
- পুনরুদ্ধারের আগে git status দিয়ে অবস্থা পরীক্ষা করুন
ধরুন, আপনি আধঘণ্টা ধরে একটি কনফিগারেশন ফাইল সম্পাদনা করছেন, কিন্তু বুঝতে পারছেন যে আপনি ভুল পথে যাচ্ছেন। প্রতিটি পরিবর্তন ম্যানুয়ালি পূর্বাবস্থায় ফেরানোর পরিবর্তে, 'git restore config.yml' চালান। ফাইলটি তাৎক্ষণিকভাবে শেষ কমিটের অবস্থায় ফিরে আসবে। এটি এমন যেন আপনি ফাইলটি সংরক্ষণ না করেই বন্ধ করে দিয়েছেন, কিন্তু একটি কার্যকরী সংস্করণে ফিরে আসার নিশ্চয়তা সহ।
# ফাইল পুনরুদ্ধারের প্রদর্শন
$ echo "ভুল পরিবর্তন" > main.py
$ git status
$ git restore main.py
$ cat main.py
$ git status
ইনডেক্স থেকে ফাইল সরানো
- git restore --staged file.txt — ইনডেক্স থেকে ফাইল সরানো
- ওয়ার্কিং ডিরেক্টরিতে পরিবর্তন সংরক্ষণ করে
- সতর্কতা: --staged ছাড়া পরিবর্তন হারিয়ে যাবে
- কার্যকর করার আগে সর্বদা git status পরীক্ষা করুন
একটি সাধারণ ভুল হলো ভুলবশত ইনডেক্সে অপ্রয়োজনীয় ফাইল যোগ করা। উদাহরণস্বরূপ, আপনি 'git add .' চালিয়েছেন এবং একটি অস্থায়ী কনফিগারেশন ফাইলও যোগ হয়ে গেছে। 'git restore' কমান্ডটি '--staged' ফ্ল্যাগ এবং ফাইলের নাম 'settings.tmp' সহ সেটিকে ইনডেক্স থেকে সরিয়ে ফেলবে, কিন্তু ওয়ার্কিং ডিরেক্টরির সব পরিবর্তন সংরক্ষণ করবে। '--staged' ফ্ল্যাগ ছাড়া আপনি আপনার কাজ হারিয়ে ফেলতে পারেন, তাই 'git restore' চালানোর আগে সর্বদা 'git status' দিয়ে অবস্থা পরীক্ষা করুন। এখন আপনি কমিটের আগে পরিবর্তন বাতিল করতে জানেন। কিন্তু কীভাবে ভুল ইতিহাসে ঢুকে গেছে? সেক্ষেত্রে 'git reset' কাজে আসে।
# ভুলবশত ইনডেক্সে ফাইল যোগ করা
$ git add config.tmp
$ git status
# পরিবর্তন রেখে ইনডেক্স থেকে সরানো
$ git restore --staged config.tmp
$ git status
# ফাইলটি ওয়ার্কিং ডিরেক্টরিতে আছে কিনা পরীক্ষা
$ ls -la config.tmp
บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก
ฉบับเต็มมีสไลด์เพิ่มอีก 24 สไลด์
วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก
เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิกเนื้อหาบทเรียน
- Git restore: ফাইলের জন্য 'বাতিল' বোতাম
- ওয়ার্কিং ডিরেক্টরিতে পরিবর্তন বাতিল
- ইনডেক্স থেকে ফাইল সরানো
- Git reset: ইতিহাস রিওয়াইন্ড কিভাবে কাজ করে
- নিরাপদ reset --soft: ইনডেক্সে পরিবর্তন রাখা
- স্ট্যান্ডার্ড reset --mixed: ওয়ার্কিং ডিরেক্টরিতে পরিবর্তন রাখা
- বিপজ্জনক reset --hard: অপরিবর্তনীয় মুছে ফেলা
- রিসেট: তিন মোড, এক কমান্ড
- git reset --soft: নিরাপদে ইতিহাস পুনর্লিখন
- কখন --mixed এবং --hard ব্যবহার করবেন
- চেকলিস্ট: কোন রিসেট বেছে নেবেন?
- কেন শুধু ভুল মুছে ফেলা যায় না?
- কিভাবে git revert বাস্তবে কাজ করে
- একসাথে একাধিক কমিট বাতিল করা
- রিসেট: লোকালি ইতিহাস পুনর্লিখন
- Revert: নিরাপদে পরিবর্তন বাতিল করা
- push করার সময় কী হবে: reset বনাম revert
- কেন reset --hard বিপজ্জনক
- পরিবর্তন হারানোর উদাহরণ
- কিভাবে ডেটা পুনরুদ্ধার করবেন
- সাধারণ শাখায় রোলব্যাকের বিপদ
- revert-এর মাধ্যমে নিরাপদ রোলব্যাক
- সঠিক কর্মের ক্রম
- কখন কী ব্যবহার করবেন: restore, reset নাকি revert
- ব্যক্তিগত ও শেয়ার্ড ইতিহাস নিয়ে কাজ করার নিয়ম
- ভুল হলে ধাপে ধাপে নির্দেশিকা
- সারসংক্ষেপ ও কাজ: প্রত্যাবর্তনের ওস্তাদ
บทความเกี่ยวกับบทเรียนนี้
- คำสั่ง Git: ชีตสรุปพร้อมตัวอย่างสำหรับใช้ทุกวัน
- git checkout, switch และ restore: ควรใช้อะไรเมื่อไร
- git reset กับ git revert: วิธียกเลิกคอมมิตโดยไม่ทำลายประวัติของทีม
- git reflog: วิธีกู้คอมมิตและบรานช์ที่หายไป
- Git และ GitHub: ต่างกันอย่างไร และเชื่อมโยงกันอย่างไร
บทเรียนทั้งหมดในคอร์สนี้
- গিটের ভূমিকা: শুরু থেকে আত্মবিশ্বাসী ডেভেলপার পর্যন্ত
- কেন আদৌ Git প্রয়োজন — এবং কেন এটি ছাড়া চাকরি পাওয়া যায় না
- ইনস্টল এবং কনফিগারেশন: প্রথম চালানোর জন্য Git প্রস্তুত করা
- প্রথম রিপোজিটরি: init, add, commit এবং ইনডেক্সের যাদু
- ইতিহাস পড়া: log, diff, show এবং অতীতে নেভিগেশন
- শাখা: আপনার কোডের সমান্তরাল বাস্তবতা
- ভুল বাতিল: restore, reset, revert — সঠিক ও বিপজ্জনক ব্যবহার
- গিটহাব ও দূরবর্তী রিপোজিটরি: আপনার কোড ক্লাউডে
- দলগত কাজ: ফর্ক, ফিচার ব্রাঞ্চ এবং পুল রিকোয়েস্ট
- মার্জ কনফ্লিক্ট: আতঙ্কিত না হয়ে বুঝুন এবং সমাধান করুন
- বাস্তব দলে গিট প্রক্রিয়া: কোন ওয়ার্কফ্লো বেছে নেবেন
- উন্নত টুল: রিবেস, স্ট্যাশ, চেরি-পিক এবং ট্যাগ
- চূড়ান্ত প্রকল্প: বাস্তব দলগত উন্নয়ন সিমুলেশন