🎉 অভিনন্দন!

আপনি এই series-এর শেষ পর্বে পৌঁছেছেন! এখন পর্যন্ত আপনি Git basics, GitHub, branches, pull requests, merge conflicts — সবকিছু শিখেছেন। এই পর্বে আমরা advanced topics দ্রুত cover করব, এবং সবচেয়ে exciting জিনিস — আপনার portfolio website live publish করব GitHub Pages-এ!

এই পর্ব series-এর সবচেয়ে বড় — কারণ একদিনে শিখার দরকার নেই। প্রতিটি section আলাদাভাবে পড়ুন, যখন প্রয়োজন তখন practice করুন।

🌟 Advanced Git Commands (Quick Tour)

নিচের প্রতিটি command beginner-এর জন্য immediately দরকার না, কিন্তু কাজ চালিয়ে যাবেন তখন অবশ্যই কাজে আসবে।

1. git stash — অসমাপ্ত কাজ সাময়িক রাখুন

📦 git stash

মাঝপথে কাজ করছেন, কিন্তু urgent কিছু অন্য branch-এ check করতে হবে — কিন্তু commit করার জন্য কাজ ready না। Stash আপনার uncommitted changes সাময়িকভাবে দূরে রাখে।

# বর্তমান uncommitted changes save করুন $ git stash # এখন আপনি branch switch করতে পারবেন, অন্য কাজ করতে পারবেন # পরে কাজে ফিরে এসে stash-এর জিনিস ফিরিয়ে আনুন $ git stash pop # সব stash দেখুন $ git stash list

কখন দরকার: জরুরি bug fix-এর জন্য আপনার current কাজ rapidly সরিয়ে রাখতে।

2. git restore — File-এর change undo করুন

↩️ git restore

আপনি একটা file-এ change করেছেন, কিন্তু decide করলেন — "এই change চাই না।" Restore আপনাকে last commit-এর state-এ ফিরিয়ে আনবে।

# একটি specific file revert $ git restore index.html # সব unstaged change revert $ git restore . # Staged file কে unstage $ git restore --staged index.html

কখন দরকার: Experiment করার পর "এটা bad idea ছিল" বুঝলে।

3. git reset — Commit Undo করুন

⏪ git reset

Last commit ভুল ছিল? Reset দিয়ে সেটা undo করুন।

# Soft reset — commit undo, changes কেপে রাখুন $ git reset --soft HEAD~1 # Hard reset — commit + changes সব মুছে দিন (DANGEROUS!) $ git reset --hard HEAD~1

কখন দরকার: Local-এ commit করার পর realize করলেন "এই commit message ভুল, এই code-ও ভুল"।

⚠️ Push করার পর reset করবেন না — Team-এর জন্য confusing। সেক্ষেত্রে git revert use করুন।

4. git rebase — Commit History সাজান

📐 git rebase

Merge-এর alternative। Branch-এর commits-কে main-এর latest commit-এর উপর "rebuild" করে — cleaner linear history।

# Main-এর latest changes আপনার branch-এ যোগ করুন $ git switch feature-branch $ git rebase main

কখন দরকার: Long-running branch-এ — main থেকে latest changes pull করতে। Linear, clean history।

⚠️ Rule of thumb: Public/shared branch-এ rebase করবেন না। শুধু local/personal branch-এ।

5. Squashing Commits — অনেক commit এক করুন

🤏 Squash commits

৫টি ছোট commit ("fix typo", "fix typo again", "actually fix it") কে ১টি cleaner commit-এ পরিণত করুন।

# Last 3 commits-কে interactive rebase করুন $ git rebase -i HEAD~3 # একটি editor খুলবে — "pick" এর জায়গায় "squash" লিখুন

কখন দরকার: PR open করার আগে — clean history-র জন্য।

6. Cherry-Picking — নির্দিষ্ট Commit তুলে আনুন

🍒 git cherry-pick

একটি branch-এর শুধু একটি specific commit-কে অন্য branch-এ আনুন।

$ git cherry-pick a3f2c1b

কখন দরকার: Feature branch-এর একটি bug fix urgent main-এ লাগবে — পুরো branch merge না করেও।

7. Tags এবং Releases — Version Mark করুন

🏷️ git tag

Project-এর একটি specific moment-কে "version 1.0" বা "v2.5.3" এমন label দিন।

# Tag তৈরি $ git tag v1.0 # Tag GitHub-এ push $ git push origin v1.0 # সব tag দেখুন $ git tag

কখন দরকার: Software-এর major version release করার সময়। GitHub-এ এটি Releases page-এ দেখাবে।

🌐 GitHub Pages — আপনার Portfolio Live করুন!

🎯 এটাই Series-এর Climax Moment

এই section-এ আপনার My Portfolio Website সারা পৃথিবীর জন্য live হবে — completely free, একটি real URL সহ। তৈরি হোন!

GitHub Pages হলো GitHub-এর একটি free hosting service। আপনার repository-র static file (HTML, CSS, JS) সরাসরি একটি public website হিসেবে serve হয়।

আপনি যা পাবেন:

Step-by-Step: GitHub Pages Enable করুন

Repository Settings-এ যান

GitHub-এ আপনার my-portfolio-website repo-তে যান। উপরের menu-তে "Settings" click করুন।

Pages Section খুঁজুন

Left sidebar-এ scroll করে "Pages" click করুন।

Source Configure করুন

"Build and deployment" section-এ:

১-২ মিনিট অপেক্ষা করুন

GitHub আপনার site build করছে। Page refresh করুন। একটি সবুজ banner দেখবেন: "Your site is live at https://your-username.github.io/my-portfolio-website/"

URL Visit করুন!

সেই URL browser-এ open করুন।

🎉 আপনার portfolio website এখন live! সারা পৃথিবী visit করতে পারবে।

💡 Updates Auto-Deploy

এখন থেকে যখনই আপনি main branch-এ push করবেন — GitHub Pages automatically site rebuild করে নতুন version live করবে। ১-২ মিনিট লাগে।

🤖 GitHub Actions — Automation Magic (Quick Intro)

GitHub Actions আপনার repo-তে automatic workflows run করে — যেমন:

একটি workflow file (.github/workflows/build.yml) তৈরি করেন। GitHub সেটা read করে — যখনই trigger condition match করে, automatically execute করে।

💡 Beginner হিসেবে এখনি দরকার নেই

GitHub Actions-এ শুরু করার আগে — আগে normal Git workflow comfortable হোন। ৬ মাস Git ব্যবহার করার পর এটা explore করুন।

🛡️ Branch Protection — Main কে রক্ষা করুন

Team project-এ main branch একটি sacred place। আপনি accidentally main-এ ভুল কিছু push করে fele দিতে চান না। Branch protection rules এটি prevent করে।

Common Protection Rules:

Setup: Repo → Settings → Branches → "Add rule"। Beginner-এর জন্য Public personal projects-এ দরকার নেই, কিন্তু team-এ যোগ দিলে এটা typical।

🌍 Open-Source Contribution — কীভাবে শুরু করবেন

Resume-এ একটি open-source contribution = বিশাল credibility। প্রথম contribution-এর সবচেয়ে সহজ পথ:

  1. "Good first issue" label সার্চ করুন: GitHub-এ search bar-এ label:"good first issue" language:javascript is:open (বা আপনার পছন্দের language)
  2. Repository explore করুন: README, CONTRIBUTING.md পড়ুন
  3. একটি ছোট issue-এ comment: "I'd like to work on this. Could you assign it to me?"
  4. Fork → clone → branch → কাজ → commit → push → PR
  5. Maintainer-এর feedback অনুযায়ী changes
  6. Merged হলে — celebrate!

Beginner-Friendly Repositories:

💼 Professional GitHub Profile কীভাবে বানাবেন?

আপনার GitHub profile = একটি live resume। Employer/Recruiter এখানে এসে আপনাকে judge করবেন। Make it count!

Profile README (Special Trick!)

GitHub-এ যদি আপনি আপনার username-এর সাথে একই নামে একটি repository তৈরি করেন (e.g., muhammad-rahman/muhammad-rahman), তাহলে সেটার README আপনার profile page-এর top-এ দেখাবে।

  1. একটি repo তৈরি করুন আপনার username নাম দিয়ে
  2. "Add a README" checkbox tick করুন
  3. README.md-এ আপনার bio, skills, contact links লিখুন
  4. Profile-এ গিয়ে দেখুন — beautiful introduction display হচ্ছে!

Sample Profile README:

# Hi, I'm Your Name 👋 🎓 Computer Science student | 💻 Web Developer | 🌍 [Your City] ## 🔧 Tech Stack - **Languages:** JavaScript, Python, HTML, CSS - **Frameworks:** React, Node.js - **Tools:** Git, GitHub, VS Code, Docker ## 📊 Stats ![Muhammad's stats](https://github-readme-stats.vercel.app/api?username=your-username&show_icons=true) ## 🌱 Currently Learning - TypeScript - AWS Cloud Services ## 📫 Connect - 💼 LinkedIn: [linkedin.com/in/your-name](https://linkedin.com/in/your-name) - 🌐 Portfolio: [your-portfolio.com](https://your-username.github.io/my-portfolio-website) - 📧 Email: your-email@example.com

✅ Beginner GitHub Portfolio Checklist

আপনার GitHub Profile-এ থাকা উচিত:

📂 Beginner-দের কী Project Upload করা উচিত?

সবাই বলে "GitHub-এ project upload করুন!" — কিন্তু কী upload করব?

Tier 1: Personal Projects (Must-Have)

Tier 2: Learning Projects (Show Growth)

Tier 3: Real-World Projects (Stand Out)

💡 Quality over Quantity

১০টি half-baked project-এর চেয়ে ৩টি well-built project অনেক বেশি impressive। প্রতিটি project-এ:

📅 Beginner থেকে Job-Ready: ৩০ দিনের Roadmap

Week 1: Git Basics

Week 2: GitHub Mastery

Week 3: Team Skills

Week 4: Portfolio + Job-Ready

🎤 Job Interview Questions (যা জিজ্ঞেস করা হয়)

Tech interview-এ Git/GitHub-এর সবচেয়ে common ১০টি question:

  1. Git কী? — Distributed version control system যা code history track করে।
  2. GitHub কী? — Web platform যা Git repository host করে এবং team collaboration enable করে।
  3. Commit কী? — Code-এর একটি snapshot history-তে saved।
  4. Branch কী? — Main code-এর parallel copy, independent development-এর জন্য।
  5. Merge কী? — দুই branch-এর work একসাথে combine করা।
  6. Pull request কী? — Branch-এর change main-এ merge করার formal review request।
  7. Merge conflict কী? — যখন Git auto-merge করতে পারে না — একই line-এ দুটি change।
  8. git pull কী করে? — Remote থেকে latest changes এনে local-এ merge করে।
  9. git push কী করে? — Local commits-কে remote repository-তে পাঠায়।
  10. কেন teams Git use করে? — Parallel work, history tracking, code review, backup, rollback capability।

🚀 Final Roadmap: এখান থেকে কোথায় যাবেন

Series শেষ — কিন্তু journey শুরু। Next steps:

Short-term (১-৩ মাস):

Medium-term (৩-৬ মাস):

Long-term (৬-১২ মাস):

📝 Final Practice Task — Portfolio Live করুন!

The Big One 🎯

আজই এই কাজগুলো করুন:
  1. আপনার my-portfolio-website repo-তে GitHub Pages enable করুন
  2. আপনার live URL test করুন: https://your-username.github.io/my-portfolio-website
  3. Repository-র Description-এ live URL যোগ করুন
  4. আপনার username নাম দিয়ে একটি repo তৈরি করুন → Profile README setup
  5. ৩-৫ জন বন্ধুকে আপনার live URL share করুন!
🏆

অভিনন্দন! আপনি Series সম্পন্ন করেছেন!

আপনি এখন Git এবং GitHub-এ confident। একটি live portfolio আছে। একটি professional GitHub profile আছে। Job-এ apply করার জন্য আপনি ready।

এটাই শুধু শুরু — আপনার tech career-এর পথে! 🚀

📌 Series সংক্ষেপ — যা শিখেছেন

🙏 ধন্যবাদ এবং Stay Connected

এই ১০ পর্বের journey আমার সাথে complete করার জন্য ধন্যবাদ। আশা করি এই series আপনার tech career-এর একটি foundational stepping stone হয়েছে।

আপনার learning journey সম্পর্কে শুনতে আগ্রহী। যেকোনো প্রশ্ন, feedback, বা success story share করতে চাইলে — সরাসরি email করুন!

← আগের পর্ব
পর্ব ৯: Merge Conflicts
🏁 Series Complete!
পুরো সিরিজ দেখুন

🎉 Journey চালু রাখুন!

ShadhinPath-এ আরও tech career content, AI guides, freelancing tips সব পাবেন। Newsletter subscribe করে updates মিস করবেন না।

📬 Newsletter Subscribe 🚀 আরও Tech Career Content

📧 Question? Success story? hello@shadhinpath.com
🌐 shadhinpath.com

f

প্রতি সপ্তাহে নতুন বাংলা গাইড পেতে চান?

ShadhinPath Facebook page Follow করে রাখুন — Tech career, USA immigration, finance, study abroad — সব নতুন content প্রথমে এখানে আসে।

👍 Facebook-এ Follow করুন