আগের পর্বে আমরা branch শিখেছি। কিন্তু একটা real team-এ একজন developer তার branch কীভাবে অন্যদের কাছে নিয়ে যায়? কীভাবে অন্যরা সেই code review করে? কীভাবে শেষে সবার approval নিয়ে main-এ merge হয়?
এই পর্বে আপনি শিখবেন Pull Request (PR) — modern software development-এর সবচেয়ে গুরুত্বপূর্ণ workflow। Google থেকে স্টার্টআপ — সব জায়গায় এটাই use হয়।
🎯 এই পর্বের পর আপনি যা পারবেন
- Clone, Fork, এবং Pull Request — পার্থক্য বুঝতে পারবেন
- একটি real Pull Request তৈরি করতে পারবেন
- Code review process বুঝতে পারবেন
- Open-source contribute করার জন্য prepared থাকবেন
- Job interview-এ এই concept confidently explain করতে পারবেন
🤝 Collaboration কী?
Collaboration মানে একসাথে কাজ করা। Software development-এ এর মানে:
- একই project-এ multiple developers কাজ করছেন
- সবাই নিজের নিজের contribution add করছেন
- কেউ কারো কাজ accidentally overwrite করছে না
- প্রতিটি change review হচ্ছে — quality maintained
GitHub এই collaboration-কে এত সহজ করেছে যে এখন একজন BD developer Bangladesh-এ বসে, একজন US-based developer-এর code review করেন। প্রতিদিন।
📥 Clone vs Fork — পার্থক্য কী?
📥 Clone
কোনো GitHub repo-কে আপনার computer-এ download করা।
- Repo-র একটি full copy আপনার laptop-এ আসে
- সাধারণত নিজের বা team-এর repo-র জন্য
- আপনি পরিবর্তন করতে পারবেন (কিন্তু push করতে permission লাগবে)
🍴 Fork
অন্য কারো GitHub repo-র একটি আপনার নিজের copy তৈরি করা।
- GitHub-এ আপনার account-এ একটি independent copy
- Open-source contribution-এর জন্য primary way
- আপনার fork-এ আপনার সম্পূর্ণ control
সহজ analogy:
- Clone = বই থেকে একটি photocopy নেওয়া (আপনার বাসায়)
- Fork = বই-এর একটি copy কিনে নিজের library-তে রাখা (আপনার সম্পূর্ণ ownership)
Clone কীভাবে করবেন?
GitHub-এ যেকোনো repository-তে যান। "Code" button-এ click করুন। HTTPS URL copy করুন। তারপর terminal-এ:
এক command-এ — সম্পূর্ণ project আপনার computer-এ।
Fork কীভাবে করবেন?
GitHub-এ যে repo-কে fork করতে চান, সেটার page-এ যান। উপরের ডানদিকে "Fork" button-এ click করুন। GitHub আপনার account-এ একটি copy তৈরি করবে — instantly।
🔀 Pull Request (PR) কী?
Pull Request হলো — আপনার branch-এর কাজ মূল project-এ merge করার জন্য একটি formal request।
সহজ ভাষায়:
Pull Request মানে — "আমি কিছু change করেছি, please review করুন। ঠিক থাকলে আপনার main code-এ যুক্ত করুন।"
এটা একটি permission request এবং code review platform একসাথে। GitHub-এ PR open করলে:
- আপনার branch + main-এর difference সবাই দেখতে পারে
- Team members comment দিতে পারেন — "এই line-এ bug আছে"
- আপনি comment-এর response-এ আরও commit করতে পারেন
- Approval পেলে → maintainer merge button click করে
💡 কেন এটা এত important?
Pull Request ছাড়া দুনিয়ার সব open-source software — Linux kernel, Node.js, React — কিছুই আজকের জায়গায় আসত না। লক্ষ লক্ষ developer এই process-এর মাধ্যমে contribute করে।🔍 Code Review কী?
Code Review = আপনার লেখা code অন্য কেউ পড়ে দেখা, এবং feedback দেওয়া।
কেন important?
- ✅ Bug ধরা পড়ে production-এ যাওয়ার আগেই
- ✅ Junior developer senior-এর কাছ থেকে শেখে
- ✅ Code quality consistent থাকে
- ✅ Knowledge sharing — কেউ একা সবকিছু জানে না
- ✅ Documentation — কেন এই decision নেওয়া হয়েছিল, history-তে থাকে
একটি typical review feedback কেমন দেখায়?
- "এই function-টা ১০০ line — আরো ছোট ছোট function-এ ভাগ করা যায়?"
- "এখানে null check করেননি — error হতে পারে"
- "Variable name
x-এর পরিবর্তেuserCountদিন" - "এই logic-এর জন্য unit test লিখুন"
- "LGTM ✅" (Looks Good To Me — approval)
🔁 Team-এ GitHub Workflow — Step by Step
Real-world team-এ একটি typical workflow:
git clone <url> — Team repo-র copy আপনার computer-এ
git switch -c feature-about-section
git add . && git commit -m "Add about section"
git push origin feature-about-section
🚀 হাতে-কলমে: প্রথম Pull Request তৈরি করুন
চলুন আপনার My Portfolio Website-এ একটি "About" section যোগ করি — Pull Request workflow দিয়ে।
Local-এ Feature Branch তৈরি করুন
আপনার project folder-এ যান (যদি আগে থেকে clone করা না থাকে, clone করুন প্রথমে):
Changes করুন
index.html খুলে <body>-এর ভিতরে একটি About section যোগ করুন:
Save করুন।
Commit করুন
Branch GitHub-এ Push করুন
লক্ষ্য করুন GitHub একটি URL দিয়েছে — Pull Request তৈরি করার জন্য।
GitHub-এ Pull Request Open করুন
দুই উপায়:
- Terminal-এর URL: Push-এর output-এ যে URL আছে সেটায় click
- Website navigate: Browser-এ আপনার repo-তে যান — উপরে একটি yellow banner দেখবেন "feature-about-section had recent pushes" — সাথে "Compare & pull request" button। সেটায় click।
Pull Request Details Fill করুন
একটি form খুলবে:
- Title:
Add About Me section to homepage(clear + concise) - Description:
## What's changed - Added an About Me section to index.html - Includes brief introduction ## Why - Portfolio needs personal context for visitors ## Screenshots (N/A — text-only change)
"Create pull request" button-এ click করুন।
Pull Request Page দেখুন
এখন আপনি PR page-এ আছেন। এখানে যা দেখতে পাবেন:
- 📝 আপনার title + description
- 📊 কতগুলি commit (1)
- 📁 কতগুলি file changed
- 🔍 Files changed tab — line-by-line diff
- 💬 Conversation tab — সবার comments
- 🟢 "Merge pull request" button (যেহেতু এটা আপনার নিজের repo, আপনি নিজেই merge করতে পারবেন)
Merge করুন
"Merge pull request" click → "Confirm merge"
✅ Merged! আপনার feature এখন main-এ।
Local Update করুন
Terminal-এ ফিরে গিয়ে main-এ latest changes pull করুন:
👥 Real Team Scenario: ৫ Developer + ১ Project
একটি real example দেখি:
- Rahim — Login feature build করছেন (
feature-loginbranch) - Karim — Search feature (
feature-search) - Salma — Profile page (
feature-profile) - Lina — Mobile responsive fix (
fix-mobile-css) - Senior Dev — Reviewing everyone's PR
সবাই parallel-এ কাজ করছেন, আলাদা branch-এ। প্রতিদিন ৫-১০টা PR open হচ্ছে। Senior dev review করছেন, feedback দিচ্ছেন, approve করছেন। Day-end-এ approved PR-গুলো main-এ merge হচ্ছে।
এটাই modern software development। এখানে কেউ চিৎকার করে না, email পাঠাতে হয় না — সব GitHub-এই organized।
🌐 Open-Source Contribution (Bonus)
Open-source project-এ PR submit করা একটু আলাদা। আপনার তো সেই project-এ direct write access নেই। এই workflow:
- Fork the original repo (নিজের copy বানান)
- Clone your fork to your computer
- Create branch + make changes + commit
- Push to your fork
- Open PR — কিন্তু এবার আপনার fork → original repo
- Maintainer review করেন
- Approved হলে — maintainer merge করেন
একটি successful open-source contribution = আপনার GitHub profile-এ একটি বড় credibility badge। Employer-রা impressed হয়।
📋 সব Commands এক জায়গায়
| Command | কী করে |
|---|---|
git clone <url> | Repo-র full copy download |
git switch -c branch-name | নতুন branch তৈরি + switch |
git add . | Stage all changes |
git commit -m "msg" | Commit |
git push origin branch-name | Branch GitHub-এ push |
| GitHub UI | PR তৈরি করতে — terminal-এ command নেই |
⚠️ Common Beginner Mistakes
1. Branch push না করেই PR খোঁজা
সমস্যা: Local-এ commit আছে, GitHub-এ নেই — PR option দেখাচ্ছে না।
সমাধান: প্রথমে git push origin branch-name চালান।
2. PR-এ vague title
সমস্যা: "updates" বা "changes" — কেউ বুঝবে না কী করেছেন।
সমাধান: Verb দিয়ে শুরু, specific: "Add login form to homepage"।
3. একটি PR-এ অনেক unrelated change
সমস্যা: একই PR-এ login + search + profile — reviewer পাগল হয়ে যাবেন।
সমাধান: এক PR = এক feature। ছোট, focused PR-ই reviewer-রা love করেন।
4. Description খালি রেখে দেওয়া
সমস্যা: Reviewer বুঝবে না — কেন এই change? কীভাবে test করব?
সমাধান: Description-এ — কী, কেন, কীভাবে test করতে হয় — সব লিখুন।
5. Review feedback ignore করা
সমস্যা: Senior 5টা comment দিল — আপনি ১টাও respond না করে merge চাইলেন।
সমাধান: প্রতিটি comment-এর reply দিন (agree হলে fix, না হলে discuss)।
6. Main branch-এ direct push
সমস্যা: Branch protection enable থাকলে error; না থাকলে — bad practice।
সমাধান: সবসময় feature branch + PR workflow follow করুন।
📝 Practice Tasks
Task 1: প্রথম Pull Request তৈরি করুন
- আপনার My Portfolio Website-এ
feature-about-sectionbranch তৈরি করুন - About section যোগ করুন (উপরের code use করুন)
- Commit করুন
git push origin feature-about-section- GitHub-এ যান, "Compare & pull request" click
- Title + description দিন
- "Create pull request" click
- "Merge pull request" → "Confirm merge"
- Local-এ
git pullকরুন
Task 2: আরো ২টি Feature PR
নিচের ২টি কাজ আলাদা branch + আলাদা PR দিয়ে করুন:- Footer যোগ করুন —
feature-footerbranch + PR - Skills section যোগ করুন —
feature-skillsbranch + PR
Task 3: একটি Public Repo Fork করুন
Open-source experience-এর জন্য:- GitHub-এ একটি beginner-friendly repo খুঁজুন (e.g., search "first-contributions")
- Fork button click করুন
- আপনার fork clone করুন
- Browse করে দেখুন — কী আছে, কী add/improve করা যায়
- (এই task-এ এখনই PR করতে হবে না — exposure-ই enough)
🎁 আরও সাহায্য চাই? Bonus Resources দেখুন
- 📋 Cheat Sheet — সব command এক পাতায়, print-friendly
- 🎯 10 Practice Tasks — hands-on exercises
- 💼 Interview Q&A — job preparation
- ✅ Portfolio Checklist — job-ready profile তৈরির গাইড
📌 সংক্ষেপে — Summary
- ✅ Collaboration = একসাথে কাজ; GitHub এটাকে scale-এ সম্ভব করে
- ✅ Clone = repo-র copy আপনার computer-এ
- ✅ Fork = অন্যের repo-র copy আপনার GitHub-এ (own ownership)
- ✅ Pull Request = branch-এর change main-এ merge করার formal request
- ✅ Code Review = অন্যের code পড়ে feedback দেওয়া — quality maintain হয়
- ✅ Team workflow: clone → branch → commit → push → PR → review → merge
- ✅ Open-source: fork → clone → branch → push → PR
- ✅ Small + focused PR + clear title + good description = professional
🎉 আপনি এখন real team-এর মতো GitHub workflow follow করতে পারেন। পরের পর্বে আমরা শিখব Merge Conflict — দুজন একই line edit করলে কী হয়, কীভাবে fix করতে হয়।
📬 পরের পর্ব মিস করতে চান না?
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 করুন