উন্নত টুল: রিবেস, স্ট্যাশ, চেরি-পিক এবং ট্যাগ
চলুন জেনে নেওয়া যাক সেই টুলগুলো যা একজন আত্মবিশ্বাসী Git ব্যবহারকারীকে সাধারণ ব্যবহারকারী থেকে আলাদা করে। আমরা রিবেস নিয়ে আলোচনা করব merge-এর বিকল্প হিসেবে—দেখাবো কখন এটি ইতিহাসকে পরিষ্কার করে এবং কখন এটি বিপর্যয় ডেকে আনে। যোগ করব স্ট্যাশ দ্রুত অসমাপ্ত কাজ 'স্থগিত' রাখার জন্য, চেরি-পিক নির্দিষ্ট কমিট স্থানান্তরের জন্য এবং ট্যাগ রিলিজ চিহ্নিত করার জন্য।
- আপনি git stash ব্যবহার করে পরিবর্তন না হারিয়ে কাজের প্রসঙ্গ পরিবর্তন করতে পারবেন।
- আপনি rebase এবং merge-এর মধ্যে পার্থক্য বুঝতে পারবেন এবং প্রসঙ্গ অনুযায়ী সচেতনভাবে একটি বেছে নিতে পারবেন।
- আপনি ইন্টারঅ্যাকটিভ রিবেসের মাধ্যমে কমিট ইতিহাস সম্পাদনা করতে এবং রিলিজ সংস্করণ ট্যাগ দিয়ে চিহ্নিত করতে শিখবেন।
จุดเริ่มต้นของบทเรียน
সমস্যা: অসমাপ্ত কাজ কীভাবে সরিয়ে রাখবেন
- হঠাৎ কোনো বাগ ফিক্স আপনার কাজ বাধাগ্রস্ত করে
- অসমাপ্ত কোড কমিট করা যায় না
- গিট স্ট্যাশ — পরিবর্তনের অস্থায়ী ভান্ডার
- ট্র্যাক করা এবং আনট্র্যাক করা ফাইল উভয়ই সংরক্ষণ করে
- ওয়ার্কিং ডিরেক্টরিকে পরিষ্কার অবস্থায় ফিরিয়ে আনে
মনে করুন, আপনি একটি নতুন ফিচারে কাজ করছেন, হঠাৎ একটি জরুরি বাগ ফিক্স এলো। কাজটি অসমাপ্ত রেখে যেতে ইচ্ছে করে না, আবার অপরিণত কোড কমিট করাও যায় না। এই ধরনের পরিস্থিতির জন্যই আছে git stash — আপনার ডিজিটাল অস্থায়ী তাক। এটি গেমে পজ দেওয়ার মতো: বর্তমান অগ্রগতি সংরক্ষিত থাকে, এবং আপনি অন্য কাজে মন দিতে পারেন। ফিরে এসে দেখবেন সবকিছু আগের মতোই আছে, আনট্র্যাক করা ফাইলসহ — যদি আপনি -u ফ্ল্যাগ ব্যবহার করতে ভুলে না যান। এটি আপনাকে একসাথে একাধিক কাজ মনে রাখার ঝামেলা থেকে বাঁচাবে।
পরিবর্তন সংরক্ষণ ও দেখা
- git stash save — পরিবর্তনগুলি ভান্ডারে সংরক্ষণ করে
- git stash list — সংরক্ষিত পরিবর্তনের তালিকা দেখায়
- প্রতিটি স্ট্যাশের একটি অনন্য আইডি থাকে
- stash@{0} — সবচেয়ে সাম্প্রতিক সংরক্ষিত পরিবর্তন
- ভান্ডার ওয়ার্কিং ডিরেক্টরির অবস্থা সংরক্ষণ করে
চলুন দেখা যাক কীভাবে git stash ব্যবহার করবেন। git stash save কমান্ডটি ওয়ার্কিং ডিরেক্টরি এবং ইনডেক্স করা ফাইলের সব পরিবর্তন সংরক্ষণ করে, আপনাকে পরিষ্কার অবস্থায় ফিরিয়ে আনে। আপনার কাজ নষ্ট হবে না — এটি একটি বিশেষ ভান্ডারে চলে যাবে। পরিবর্তনগুলি সংরক্ষিত হয়েছে কিনা নিশ্চিত হতে git stash list চালান। আপনি সব স্থগিত কাজের তালিকা দেখতে পাবেন stash@{0}-এর মতো অনন্য আইডি সহ। এটি বিশেষভাবে উপযোগী যখন দ্রুত কাজের মধ্যে স্যুইচ করতে হয়, অগ্রগতি না হারিয়ে।
# বর্তমান পরিবর্তনগুলি সংরক্ষণ করুন
git stash save "WIP: New feature login form"
# সংরক্ষিত পরিবর্তনের তালিকা দেখুন
git stash list
# সর্বশেষ স্ট্যাশের বিষয়বস্তু দেখুন
git stash show -p
স্থগিত পরিবর্তন ফিরিয়ে আনা
- git stash pop — সর্বশেষ স্ট্যাশ প্রয়োগ ও মুছে ফেলে
- git stash apply — মুছে না ফেলে প্রয়োগ করে
- কোড পরিবর্তনের কারণে দ্বন্দ্ব দেখা দিতে পারে
- দ্বন্দ্ব ম্যানুয়ালি সমাধান করতে হবে
- stash@{n} — নির্দিষ্ট সংরক্ষণে অ্যাক্সেস
যখন স্থগিত কাজে ফিরে আসার সময় হয়, আপনার কাছে দুটি বিকল্প আছে। git stash pop কমান্ড সর্বশেষ সংরক্ষিত পরিবর্তন প্রয়োগ করবে এবং স্ট্যাশ তালিকা থেকে মুছে ফেলবে। আপনি যদি শুধু পরিবর্তন দেখতে চান বা একাধিকবার প্রয়োগ করতে চান, তাহলে git stash apply ব্যবহার করুন — পরিবর্তনগুলি ভান্ডারে থাকবে। মনে রাখা গুরুত্বপূর্ণ: স্ট্যাশ সংরক্ষণের পর কোডে কোনো পরিবর্তন হলে দ্বন্দ্ব দেখা দিতে পারে। সেক্ষেত্রে গিট সমস্যা জানাবে এবং আপনাকে ম্যানুয়ালি দ্বন্দ্ব সমাধান করতে হবে।
# সর্বশেষ স্থগিত পরিবর্তন ফিরিয়ে আনুন
git stash pop
# অথবা মুছে না ফেলে প্রয়োগ করুন
git stash apply
# নির্দিষ্ট স্ট্যাশ ইনডেক্স দিয়ে প্রয়োগ করুন
git stash apply stash@{1}
บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก
ฉบับเต็มมีสไลด์เพิ่มอีก 25 สไลด์
วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก
เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิกเนื้อหาบทเรียน
- সমস্যা: অসমাপ্ত কাজ কীভাবে সরিয়ে রাখবেন
- পরিবর্তন সংরক্ষণ ও দেখা
- স্থগিত পরিবর্তন ফিরিয়ে আনা
- স্ট্যাশ কখন ক্ষতি করতে পারে
- ব্রাঞ্চ মার্জিং কীভাবে কাজ করে
- রিবেস: কমিট ইতিহাস পুনরায় লেখা
- কখন কী ব্যবহার করবেন: ব্যবহারিক পরিস্থিতি
- rebase-এর বিপদ: কী কী সমস্যা হতে পারে
- rebase কী এবং কেন এটি প্রয়োজন
- rebase সম্পাদন: ধাপে ধাপে বিশ্লেষণ
- rebase-এ দ্বন্দ্ব (conflict) সমাধান
- ইন্টারেক্টিভ rebase: আপনার কমিট ইতিহাস সম্পাদক
- ইন্টারেক্টিভ rebase-এর প্রধান কমান্ড
- অনুশীলন: ইতিহাস নিখুঁত করা
- সতর্কতা: প্রকাশিত ইতিহাস পরিবর্তন
- কেন শেয়ার্ড ব্রাঞ্চে রিবেস করা উচিত নয়
- ব্যর্থ রিবেস থেকে বাঁচার উপায়
- ইতিহাস নিরাপদে সংশোধন করা
- Git-এ চেরি-পিক কেন প্রয়োজন
- কিভাবে git cherry-pick ব্যবহার করবেন
- কখন বেছে নেবেন: cherry-pick বনাম merge বনাম rebase
- Git ট্যাগ: গুরুত্বপূর্ণ কমিটের জন্য বুকমার্ক
- অ্যানোটেটেড এবং লাইটওয়েট ট্যাগ তৈরি করা
- রিমোট রিপোজিটরিতে ট্যাগ পাবলিশ করা
- দৃশ্যকল্প: ডেভেলপমেন্টের মাঝে হটফিক্স
- Rebase এবং Cherry-pick এর মাধ্যমে পরিবর্তন ইন্টিগ্রেশন
- সাধারণ ভুল এবং এড়ানোর উপায়
- সারসংক্ষেপ: আপনার নতুন Git মাস্টারের অস্ত্রাগার
บทความเกี่ยวกับบทเรียนนี้
- git rebase: ทำงานอย่างไร โหมดโต้ตอบ และการ squash คอมมิต
- คำสั่ง Git: ชีตสรุปพร้อมตัวอย่างสำหรับใช้ทุกวัน
- Git merge กับ rebase: ควรเลือกแบบไหนสำหรับทีมของคุณ
- git stash: พักการเปลี่ยนแปลงชั่วคราวและกู้คืนได้อย่างไร
- คำถาม Git ในการสัมภาษณ์งาน: 25 ข้อพร้อมคำตอบ
บทเรียนทั้งหมดในคอร์สนี้
- গিটের ভূমিকা: শুরু থেকে আত্মবিশ্বাসী ডেভেলপার পর্যন্ত
- কেন আদৌ Git প্রয়োজন — এবং কেন এটি ছাড়া চাকরি পাওয়া যায় না
- ইনস্টল এবং কনফিগারেশন: প্রথম চালানোর জন্য Git প্রস্তুত করা
- প্রথম রিপোজিটরি: init, add, commit এবং ইনডেক্সের যাদু
- ইতিহাস পড়া: log, diff, show এবং অতীতে নেভিগেশন
- শাখা: আপনার কোডের সমান্তরাল বাস্তবতা
- ভুল বাতিল: restore, reset, revert — সঠিক ও বিপজ্জনক ব্যবহার
- গিটহাব ও দূরবর্তী রিপোজিটরি: আপনার কোড ক্লাউডে
- দলগত কাজ: ফর্ক, ফিচার ব্রাঞ্চ এবং পুল রিকোয়েস্ট
- মার্জ কনফ্লিক্ট: আতঙ্কিত না হয়ে বুঝুন এবং সমাধান করুন
- বাস্তব দলে গিট প্রক্রিয়া: কোন ওয়ার্কফ্লো বেছে নেবেন
- উন্নত টুল: রিবেস, স্ট্যাশ, চেরি-পিক এবং ট্যাগ
- চূড়ান্ত প্রকল্প: বাস্তব দলগত উন্নয়ন সিমুলেশন