এখন পর্যন্ত আমরা সব কাজ main branch-এ করেছি। কিন্তু real world-এ এভাবে কাজ হয় না। Real developer-রা branch ব্যবহার করেন — একটি simple কিন্তু extremely powerful concept।
এই পর্বে আপনি শিখবেন branch কী, কেন beginner থেকে enterprise developer পর্যন্ত সবাই branch ব্যবহার করেন, এবং কীভাবে আপনি নিজের project-এ branch implement করবেন।
🎯 এই পর্বের পর আপনি যা পারবেন
- Branch কী, কেন দরকার — clearly বুঝতে পারবেন
- নতুন branch তৈরি করতে পারবেন
- Branch-এর মধ্যে switch করতে পারবেন
- Feature branch-এ কাজ করে main-এ merge করতে পারবেন
- Team-এ কীভাবে branch use করতে হয় — জানবেন
🌳 Branch কী?
Branch হলো আপনার project-এর একটি parallel copy — যেখানে আপনি কাজ করতে পারেন main branch-কে disturb না করে।
সহজ ভাষায়:
মনে করুন আপনার project একটি গাছ। মূল trunk (কাণ্ড) হলো main branch — এটাই আপনার "production" version, stable এবং working।
আপনি যখন নতুন কিছু try করতে চান, একটি নতুন ডাল (branch) বের করেন। সেখানে experiment করেন, কাজ করেন। কাজ সফল হলে — সেই ডাল মূল কাণ্ডের সাথে merge করেন। ব্যর্থ হলে — শুধু সেই ডালটা delete করে দেন (মূল কাণ্ড অক্ষত থাকে)।
আরেকটি analogy: Word Document
মনে করুন আপনি একটি resume বানাচ্ছেন। আপনার কাছে আছে resume.docx (main)। কিন্তু আপনি দুই version try করতে চান — একটা modern style, একটা traditional।
- আপনি
resume-modern.docxতৈরি করলেন (branch 1) - আপনি
resume-traditional.docxতৈরি করলেন (branch 2) - দুটির মধ্যে যেটা ভালো হলো — সেটাই আপনার main resume হয়ে গেল
Git branch-ও ঠিক এমন — কিন্তু আরও smart। আপনি আলাদা file তৈরি করেন না — Git internally সব handle করে।
🤔 কেন Branch এত গুরুত্বপূর্ণ?
১. Main Branch সবসময় Stable রাখা
আপনার main branch হলো production version — live website বা deployed app। এটাতে সরাসরি কাজ করলে — bug introduce হলে সবাই দেখবে। Branch-এ কাজ করলে — main untouched থাকে।
২. একসাথে অনেক feature নিয়ে কাজ
আপনি একটা branch-এ "login feature" বানাচ্ছেন, আরেকটা branch-এ "search feature" বানাচ্ছেন। দুটো parallel-এ চলবে, একটা অন্যটাকে block করবে না।
৩. Team Collaboration
৫ জনের team-এ সবাই যদি main-এ কাজ করত — chaos! Branch-এ প্রত্যেকে নিজের feature build করে, ready হলে main-এ merge করে।
৪. Experiment করার Freedom
একটা risky idea try করতে চান? Branch তৈরি করুন। কাজ করলে merge, না করলে delete। Main-এর কিছুই হবে না।
৫. Code Review
Modern team-এ কোনো code main-এ যাওয়ার আগে অন্য কেউ review করেন। Branch + Pull Request — এটাই standard workflow (পরের পর্বে আসছে)।
⚠️ Beginner Rule: Main-এ সরাসরি কাজ করবেন না
Real-world job-এ join করার পর প্রথম দিনই senior দেখেছেন "তুমি main-এ commit করছ?" — সাথে সাথে red flag। সবসময় branch তৈরি করে কাজ করুন।📊 Branch-এর ধরন
Main Branch (main)
- Project-এর default branch
- সবসময় stable এবং production-ready থাকা উচিত
- সরাসরি commit করবেন না — feature branch থেকে merge করুন
Feature Branch
- নতুন feature build করার জন্য একটি temporary branch
- Naming convention:
feature-navbar,feature-login,feature-search - Feature complete হলে — main-এ merge হয়ে যায়, তারপর delete
Bug Fix Branch
- Bug fix-এর জন্য আলাদা branch
- Naming:
fix-mobile-menu,bugfix-404-error
Development Branch (dev)
- বড় team-এ — staging environment
- Beginner-এর জন্য এখনি দরকার নেই
🎨 Visual: Branch কীভাবে কাজ করে
উপরের diagram-এ:
- Main branch (সবুজ) — মূল গাছের কাণ্ড
- feature-navbar branch (নীল) — main থেকে বের হলো
- কয়েকটা commit করা হলো feature branch-এ
- শেষে main-এ merge (হলুদ) হলো
🚀 হাতে-কলমে: প্রথম Branch তৈরি করুন
চলুন আপনার My Portfolio Website project-এ একটি নতুন navbar add করি — একটি feature branch দিয়ে।
Step 1: সব Branch List দেখুন
এখন শুধু একটাই branch — main। * (star) মানে আপনি বর্তমানে main-এ আছেন।
Step 2: নতুন Branch তৈরি ও Switch
একটি command দিয়ে দুটি কাজ — branch তৈরি ও সেখানে switch:
Command-এর breakdown:
git switch— branch-এর মধ্যে switch করুন-c— Create flag (নতুন branch বানান)feature-navbar— নতুন branch-এর নাম
Verify করুন:
এখন আপনি feature-navbar branch-এ আছেন। কোনো কিছু করলে — main-এ effect হবে না।
📜 পুরোনো Command: git checkout
আপনি অনেক tutorial-এ git checkout দেখবেন — এটি পুরোনো command। ২০১৯ সালে Git-এ git switch যোগ করা হয়েছে।
| পুরোনো (এখনও কাজ করে) | নতুন (Recommended) |
|---|---|
git checkout -b feature-navbar | git switch -c feature-navbar |
git checkout main | git switch main |
git checkout feature-navbar | git switch feature-navbar |
💡 কোনটা use করবেন?
নতুন code-এgit switch ব্যবহার করুন — clearer এবং less error-prone। কিন্তু পুরোনো tutorial বা senior developer-দের code-এ git checkout দেখবেন — সেটাও জানা থাকা ভালো।
✏️ Step 3: Feature Branch-এ কাজ করুন
এখন index.html খুলে একটি navbar যোগ করুন। <body> tag-এর ঠিক ভিতরে এই code যোগ করুন:
Save করুন।
Status check + Commit
🔄 Step 4: Main-এ Switch করুন এবং Compare
এখন একটা মজার কাজ — main-এ ফিরে যান:
এখন index.html file খুলুন — navbar নেই! 😲
এটাই branch-এর জাদু। Main branch-এ আপনার navbar-এর code নেই — কারণ সেটা feature-navbar branch-এ আছে।
আবার feature branch-এ যান:
আবার index.html খুলুন — navbar ফিরে এসেছে! ✨
Git automatically file-গুলো branch-এর content অনুযায়ী switch করে। Amazing।
🔀 Step 5: Merge — Feature Branch-কে Main-এ মিশান
Navbar feature পরীক্ষা করে দেখলেন — সব ঠিক আছে। এবার main-এ merge করার সময়।
Step A: Main-এ Switch
Step B: Merge চালান
✅ Merge complete! এখন main-এ index.html খুলুন — navbar আছে।
"Fast-forward" মানে কী?
Git বুঝতে পেরেছে — main-এ feature-navbar-এর পর কোনো নতুন commit হয়নি। তাই simple ভাবে main-এর pointer-কে feature-navbar-এর latest commit-এ এগিয়ে দিয়েছে। এটাই "fast-forward merge"।
Step C: GitHub-এ Push
আপনার navbar এখন GitHub-এ live! 🎉
🗑️ Step 6: Feature Branch Delete করুন (Optional)
Feature merge হয়ে গেছে — এই branch-এর আর দরকার নেই। Delete করুন:
Branch list check করুন:
শুধু main বাকি। Clean ও simple।
💡 -d vs -D
-d(lowercase) — "delete" — শুধু তখনই delete করবে যখন branch merged। Safety check।-D(uppercase) — "force delete" — merge না হলেও delete করবে। সতর্ক থাকুন!
📋 সব Commands এক জায়গায়
| Command | কী করে |
|---|---|
git branch | সব branch list করে |
git branch new-name | নতুন branch তৈরি করে (switch করে না) |
git switch -c new-name | নতুন branch তৈরি + switch (modern) |
git switch branch-name | Existing branch-এ switch (modern) |
git checkout -b new-name | Create + switch (পুরোনো) |
git checkout branch-name | Switch (পুরোনো) |
git merge branch-name | Branch-কে current-এ merge |
git branch -d branch-name | Merged branch delete |
git branch -D branch-name | Force delete (careful!) |
git push -u origin branch-name | নতুন branch GitHub-এ push |
🎯 Team Workflow-এর Standard Pattern
Real-world team-এ branch use করার typical pattern:
- Project শুরু → main branch created
- নতুন কাজ → feature branch তৈরি (e.g.,
feature-login) - Feature branch-এ কাজ + commits
- Branch GitHub-এ push:
git push -u origin feature-login - GitHub-এ Pull Request open (পরের পর্বে আসছে)
- Team member review করেন
- Approve হলে main-এ merge
- Feature branch delete
⚠️ Common Beginner Mistakes
1. Main-এ সরাসরি কাজ করা
সমস্যা: Bug introduce করলে production-এ দেখা যাবে।
সমাধান: সব কাজ আগে feature branch-এ — review-এর পর main-এ।
2. Branch Switch করার আগে commit না করা
সমস্যা: Uncommitted changes থাকলে switch error দিতে পারে।
সমাধান: Switch-এর আগে — হয় commit করুন, না হয় git stash দিয়ে temporarily save করুন (পরের পর্বে শিখব)।
3. Confusing Branch Names
সমস্যা: test, new, updates — অর্থহীন।
সমাধান: Descriptive — feature-search-bar, fix-mobile-overflow, refactor-css।
4. Pull না করে Branch তৈরি
সমস্যা: Old main থেকে branch তৈরি করলে — merge time-এ conflict।
সমাধান: সবসময় main-এ থাকা অবস্থায় git pull চালিয়ে latest নিন, তারপর branch।
5. Merge-এর আগে current branch ভুল
সমস্যা: git merge চালানোর সময় ভুল branch-এ আছেন।
সমাধান: মনে রাখুন: "Switch to where you want changes, then merge from where they live." Navbar feature → main-এ আনতে চান → main-এ switch করুন → তারপর git merge feature-navbar।
6. Branch Push করতে ভুল
সমস্যা: git push error — কারণ new branch GitHub-এ নেই।
সমাধান: নতুন branch প্রথমবার push-এর সময়: git push -u origin branch-name।
📝 Practice Tasks
Task 1: Navbar Branch তৈরি করুন
git switch -c feature-navbarindex.html-এ একটি navbar যোগ করুন (উপরের code use করুন)git add . && git commit -m "Add navigation menu"git switch main— দেখুন navbar নেইgit switch feature-navbar— দেখুন আবার আছেgit switch maingit merge feature-navbargit push- GitHub-এ confirm করুন navbar আছে
Task 2: আরেকটি Feature Branch
নিচের যেকোনো একটি কাজ করুন — নতুন branch-এ:feature-footer— একটি footer যোগ করুন (copyright, social links)feature-about-section— একটি "About Me" sectionfeature-skills— একটি "Skills" list
Task 3: Branch Push to GitHub (Not Merge)
এবার একটি branch GitHub-এ push করুন without merging:git switch -c feature-test- কোনো change করুন + commit
git push -u origin feature-test- GitHub-এ যান — দেখবেন "feature-test" branch দেখাচ্ছে
- Branch dropdown-এ click করে দুটি branch দেখুন
🎁 আরও সাহায্য চাই? Bonus Resources দেখুন
- 📋 Cheat Sheet — সব command এক পাতায়, print-friendly
- 🎯 10 Practice Tasks — hands-on exercises
- 💼 Interview Q&A — job preparation
- ✅ Portfolio Checklist — job-ready profile তৈরির গাইড
📌 সংক্ষেপে — Summary
- ✅ Branch = main-এর parallel copy, যেখানে আপনি independently কাজ করতে পারেন
- ✅
main= stable production version; feature branch = নতুন কাজের জন্য - ✅ Beginner Rule: main-এ সরাসরি কাজ করবেন না
- ✅ Create + switch:
git switch -c feature-name - ✅ Switch:
git switch branch-name - ✅ পুরোনো command:
git checkout -b,git checkout - ✅ Merge: target branch-এ switch করুন, তারপর
git merge source-branch - ✅ Merged branch delete:
git branch -d branch-name - ✅ Naming: descriptive (
feature-search,fix-mobile-bug)
🎉 Branch এবং merge শিখে গেলেন। পরের পর্বে আমরা GitHub-এ Pull Request শিখব — branch-কে team-এর কাছে review-এর জন্য পাঠানোর professional way।
📬 পরের পর্ব মিস করতে চান না?
ShadhinPath Newsletter subscribe করুন — Git & GitHub সিরিজের প্রতিটি পর্ব সরাসরি inbox-এ।
📬 Newsletter Subscribe 📚 সম্পূর্ণ সিরিজ📧 Question? hello@shadhinpath.com
প্রতি সপ্তাহে নতুন বাংলা গাইড পেতে চান?
ShadhinPath Facebook page Follow করে রাখুন — Tech career, USA immigration, finance, study abroad — সব নতুন content প্রথমে এখানে আসে।
👍 Facebook-এ Follow করুন