শাখা: আপনার কোডের সমান্তরাল বাস্তবতা
শাখা হল Git-এর হৃদয়, এবং এখানেই বেশিরভাগ শিক্ষানবিশ ভয় পেতে শুরু করে। আমরা শাখাকে রহস্যমুক্ত করি: দেখাই যে একটি শাখা কেবল একটি পয়েন্টার, ফাইলের কপি নয়। আমরা শাখা তৈরি করা, তাদের মধ্যে স্যুইচ করা এবং পরিবর্তনগুলি একীভূত করার পদ্ধতি ব্যাখ্যা করি, পাশাপাশি ফাস্ট-ফরওয়ার্ড এবং থ্রি-ওয়ে মার্জের মধ্যে পার্থক্য বাস্তব উদাহরণ সহ দেখাই।
- আপনি বুঝতে পারবেন যে শাখা একটি হালকা ওজনের পয়েন্টার, এবং যেকোনো কারণে সেগুলি তৈরি করতে আর ভয় পাবেন না।
- আপনি শাখা তৈরি, স্যুইচ এবং মার্জ কমান্ডের মাধ্যমে পরিবর্তনগুলি একীভূত করতে সক্ষম হবেন।
- আপনি ফাস্ট-ফরওয়ার্ড এবং থ্রি-ওয়ে মার্জের মধ্যে পার্থক্য বুঝতে পারবেন এবং কোন পরিস্থিতিতে কোন পদ্ধতি প্রয়োগ করতে হবে তা জানবেন।
จุดเริ่มต้นของบทเรียน
শাখায় ফাইল কপি করার ভ্রান্ত ধারণা
- শাখা ফাইলগুলোর কপি নয়, বরং একটি হালকা পয়েন্টার
- শাখা তৈরি করতে সময় লাগে সেকেন্ডের ভগ্নাংশ
- স্টোরেজে কোনো অতিরিক্ত খরচ নেই
- সব শাখা একই ফাইল নিয়ে কাজ করে
ধরুন, প্রতিবার শাখা তৈরি করার সময় আপনার পুরো প্রকল্প কপি হয়ে যায় — বড় রিপোজিটরির জন্য এটা ভয়াবহ! ভাগ্যক্রমে, Git অনেক বেশি বুদ্ধিমান। একটি শাখা হলো পরিবর্তনের ইতিহাসে একটি নির্দিষ্ট কমিটের দিকে নির্দেশ করা একটি মাত্র পয়েন্টার। ফাইলের কোনো ডুপ্লিকেশন হয় না, যা শাখা নিয়ে কাজ করাকে তাৎক্ষণিক করে তোলে। এটি আপনার কোডের সময়জগতে বিভিন্ন বিন্দুর মধ্যে স্যুইচ করার মতো, প্রতিটি পরিবর্তনের জন্য সমান্তরাল মহাবিশ্ব তৈরি করা নয়।
শাখার অভ্যন্তরীণ কাঠামো
- শাখা = কমিট হ্যাশ সম্বলিত একটি টেক্সট ফাইল
- .git/refs/heads/ ফোল্ডারে সংরক্ষিত
- আকার: ঠিক 40 অক্ষর
- নতুন শাখা = নতুন ফাইল যাতে হ্যাশ থাকে
আসুন Git-এর ভেতরে উঁকি দিই। প্রতিটি শাখা হলো গোপন ডট গিট ফোল্ডারের ভেতরে একটি সাধারণ টেক্সট ফাইল। এই ফাইলে মাত্র চল্লিশটি অক্ষর থাকে — শাখার শেষ কমিটের হ্যাশ। আপনি যখন নতুন শাখা তৈরি করেন, Git বর্তমান কমিটের হ্যাশ নতুন ফাইলে লিখে দেয়। পুরো প্রক্রিয়াটি সময় নেয় সেকেন্ডের ভগ্নাংশ, এমনকি প্রকল্পে হাজার হাজার ফাইল থাকলেও। এখন বুঝলেন কেন শাখার মধ্যে স্যুইচ করা তাৎক্ষণিকভাবে হয়?
বইয়ের কপির পরিবর্তে বুকমার্ক
- শাখা বইয়ের বুকমার্কের মতো
- বিষয়বস্তু কপি করে না
- তাৎক্ষণিক স্যুইচিং
- যত খুশি তৈরি করা যায়
বই পড়ার সাথে তুলনা করা যাক। আপনি যখন কোনো পৃষ্ঠায় বুকমার্ক দেন, তাহলে কি পুরো বই কপি করেন? না, আপনি শুধু জায়গাটি চিহ্নিত করেন, পরে ফিরে আসার জন্য। Git-এ শাখাও ঠিক তাই — এটি একটি হালকা ট্যাগ, যা আপনার কোডের একটি নির্দিষ্ট অবস্থা নির্দেশ করে। আপনি এমন ডজনখানেক ট্যাগ তৈরি করতে পারেন, এবং এটি ডিস্কে অতিরিক্ত জায়গা নেবে না। এটি প্রকল্পের বিভিন্ন সংস্করণ নিয়ে একসাথে কাজ করার ধারণাকে পুরোপুরি বদলে দেয়।
บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก
ฉบับเต็มมีสไลด์เพิ่มอีก 21 สไลด์
วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก
เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิกเนื้อหาบทเรียน
- শাখায় ফাইল কপি করার ভ্রান্ত ধারণা
- শাখার অভ্যন্তরীণ কাঠামো
- বইয়ের কপির পরিবর্তে বুকমার্ক
- বাস্তবে শাখা তৈরি করা
- Git-এ শাখা কিভাবে কাজ করে
- নতুন শাখা তৈরি করা
- দ্রুত তৈরি এবং সুইচিং
- শাখা পরিবর্তন করলে কী ঘটে
- কখন শাখার মিশ্রণ বিরোধহীন হয়
- Fast-forward মিশ্রণ কীভাবে কাজ করে
- ব্যবহারিক উদাহরণ: main-এ feature মিশ্রণ
- কখন শাখার মিশ্রণ স্বয়ংক্রিয়ভাবে সম্ভব নয়
- মিশ্রণ দ্বন্দ্ব কেমন দেখায়
- দ্বন্দ্ব সমাধানের পদক্ষেপ
- কেন সরল মিশ্রণ সবসময় কাজ করে না?
- তিন পক্ষের মার্জ: আপনার কোডের সমান্তরাল বাস্তবতা
- প্র্যাকটিসে মার্জ কমিট তৈরি করা
- কীভাবে দীর্ঘ অপেক্ষা মার্জকে জটিল করে তোলে
- মার্জ দ্বন্দ্ব উপেক্ষা করার বিপদ
- দ্বন্দ্ব সমাধানের সঠিক উপায়
- নতুন কাজের জন্য ফিচার শাখা তৈরি করা
- একাধিক শাখায় সমান্তরাল কাজ
- প্রধান শাখার সাথে পরিবর্তন মার্জ করা
- সারসংক্ষেপ: শাখা ও একীভূতকরণ
บทความเกี่ยวกับบทเรียนนี้
- คำสั่ง Git: ชีตสรุปพร้อมตัวอย่างสำหรับใช้ทุกวัน
- git checkout, switch และ restore: ควรใช้อะไรเมื่อไร
- git merge: วิธีรวมบรานช์และแก้ความขัดแย้ง
- บรานช์ใน Git: git branch การสร้าง การสลับ และการลบ
- git worktree: วิธีทำงานกับหลายบรานช์พร้อมกัน
บทเรียนทั้งหมดในคอร์สนี้
- গিটের ভূমিকা: শুরু থেকে আত্মবিশ্বাসী ডেভেলপার পর্যন্ত
- কেন আদৌ Git প্রয়োজন — এবং কেন এটি ছাড়া চাকরি পাওয়া যায় না
- ইনস্টল এবং কনফিগারেশন: প্রথম চালানোর জন্য Git প্রস্তুত করা
- প্রথম রিপোজিটরি: init, add, commit এবং ইনডেক্সের যাদু
- ইতিহাস পড়া: log, diff, show এবং অতীতে নেভিগেশন
- শাখা: আপনার কোডের সমান্তরাল বাস্তবতা
- ভুল বাতিল: restore, reset, revert — সঠিক ও বিপজ্জনক ব্যবহার
- গিটহাব ও দূরবর্তী রিপোজিটরি: আপনার কোড ক্লাউডে
- দলগত কাজ: ফর্ক, ফিচার ব্রাঞ্চ এবং পুল রিকোয়েস্ট
- মার্জ কনফ্লিক্ট: আতঙ্কিত না হয়ে বুঝুন এবং সমাধান করুন
- বাস্তব দলে গিট প্রক্রিয়া: কোন ওয়ার্কফ্লো বেছে নেবেন
- উন্নত টুল: রিবেস, স্ট্যাশ, চেরি-পিক এবং ট্যাগ
- চূড়ান্ত প্রকল্প: বাস্তব দলগত উন্নয়ন সিমুলেশন