আগের পর্বে আমরা branch শিখেছি। কিন্তু একটা real team-এ একজন developer তার branch কীভাবে অন্যদের কাছে নিয়ে যায়? কীভাবে অন্যরা সেই code review করে? কীভাবে শেষে সবার approval নিয়ে main-এ merge হয়?

এই পর্বে আপনি শিখবেন Pull Request (PR) — modern software development-এর সবচেয়ে গুরুত্বপূর্ণ workflow। Google থেকে স্টার্টআপ — সব জায়গায় এটাই use হয়।

🎯 এই পর্বের পর আপনি যা পারবেন

🤝 Collaboration কী?

Collaboration মানে একসাথে কাজ করা। Software development-এ এর মানে:

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 কীভাবে করবেন?

GitHub-এ যেকোনো repository-তে যান। "Code" button-এ click করুন। HTTPS URL copy করুন। তারপর terminal-এ:

$ cd Desktop $ git clone https://github.com/your-username/my-portfolio-website.git Cloning into 'my-portfolio-website'... remote: Enumerating objects: 12, done. remote: Counting objects: 100% (12/12), done. Receiving objects: 100% (12/12), 1.42 KiB | 1.42 MiB/s, done.

এক 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 করলে:

💡 কেন এটা এত important?

Pull Request ছাড়া দুনিয়ার সব open-source software — Linux kernel, Node.js, React — কিছুই আজকের জায়গায় আসত না। লক্ষ লক্ষ developer এই process-এর মাধ্যমে contribute করে।

🔍 Code Review কী?

Code Review = আপনার লেখা code অন্য কেউ পড়ে দেখা, এবং feedback দেওয়া।

কেন important?

একটি typical review feedback কেমন দেখায়?

🔁 Team-এ GitHub Workflow — Step by Step

Real-world team-এ একটি typical workflow:

Clone Repository git clone <url> — Team repo-র copy আপনার computer-এ
Create Feature Branch git switch -c feature-about-section
Make Changes + Commit git add . && git commit -m "Add about section"
Push Branch to GitHub git push origin feature-about-section
Open Pull Request GitHub website-এ "New Pull Request" click — title + description দিন
Code Review Team members comment দিচ্ছেন, suggest করছেন। আপনি address করছেন।
Approve + Merge Reviewer approve করলে — "Merge" button click → main-এ মিশে গেল

🚀 হাতে-কলমে: প্রথম Pull Request তৈরি করুন

চলুন আপনার My Portfolio Website-এ একটি "About" section যোগ করি — Pull Request workflow দিয়ে।

Local-এ Feature Branch তৈরি করুন

আপনার project folder-এ যান (যদি আগে থেকে clone করা না থাকে, clone করুন প্রথমে):

$ cd Desktop/my-portfolio-website $ git switch main $ git pull $ git switch -c feature-about-section Switched to a new branch 'feature-about-section'

Changes করুন

index.html খুলে <body>-এর ভিতরে একটি About section যোগ করুন:

<section id="about"> <h2>About Me</h2> <p>I am a developer learning Git and GitHub with ShadhinPath.com. I love building web projects and contributing to open-source.</p> </section>

Save করুন।

Commit করুন

$ git add . $ git commit -m "Add about section with introduction" [feature-about-section 5f3a9b2] Add about section with introduction

Branch GitHub-এ Push করুন

$ git push origin feature-about-section remote: Create a pull request for 'feature-about-section' on GitHub by visiting: remote: https://github.com/your-username/my-portfolio-website/pull/new/feature-about-section To github.com:your-username/my-portfolio-website.git * [new branch] feature-about-section -> feature-about-section

লক্ষ্য করুন GitHub একটি URL দিয়েছে — Pull Request তৈরি করার জন্য।

GitHub-এ Pull Request Open করুন

দুই উপায়:

  1. Terminal-এর URL: Push-এর output-এ যে URL আছে সেটায় click
  2. Website navigate: Browser-এ আপনার repo-তে যান — উপরে একটি yellow banner দেখবেন "feature-about-section had recent pushes" — সাথে "Compare & pull request" button। সেটায় click।

Pull Request Details Fill করুন

একটি form খুলবে:

"Create pull request" button-এ click করুন।

Pull Request Page দেখুন

এখন আপনি PR page-এ আছেন। এখানে যা দেখতে পাবেন:

Merge করুন

"Merge pull request" click → "Confirm merge"

✅ Merged! আপনার feature এখন main-এ।

Local Update করুন

Terminal-এ ফিরে গিয়ে main-এ latest changes pull করুন:

$ git switch main $ git pull Updating 4d2e8f1..5f3a9b2 Fast-forward index.html | 4 ++++ # পুরোনো branch delete $ git branch -d feature-about-section

👥 Real Team Scenario: ৫ Developer + ১ Project

একটি real example দেখি:

সবাই 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:

  1. Fork the original repo (নিজের copy বানান)
  2. Clone your fork to your computer
  3. Create branch + make changes + commit
  4. Push to your fork
  5. Open PR — কিন্তু এবার আপনার fork → original repo
  6. Maintainer review করেন
  7. 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-nameBranch GitHub-এ push
GitHub UIPR তৈরি করতে — 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 তৈরি করুন

  1. আপনার My Portfolio Website-এ feature-about-section branch তৈরি করুন
  2. About section যোগ করুন (উপরের code use করুন)
  3. Commit করুন
  4. git push origin feature-about-section
  5. GitHub-এ যান, "Compare & pull request" click
  6. Title + description দিন
  7. "Create pull request" click
  8. "Merge pull request" → "Confirm merge"
  9. Local-এ git pull করুন

Task 2: আরো ২টি Feature PR

নিচের ২টি কাজ আলাদা branch + আলাদা PR দিয়ে করুন:
  1. Footer যোগ করুন — feature-footer branch + PR
  2. Skills section যোগ করুন — feature-skills branch + PR
এটাই professional workflow।

Task 3: একটি Public Repo Fork করুন

Open-source experience-এর জন্য:
  1. GitHub-এ একটি beginner-friendly repo খুঁজুন (e.g., search "first-contributions")
  2. Fork button click করুন
  3. আপনার fork clone করুন
  4. Browse করে দেখুন — কী আছে, কী add/improve করা যায়
  5. (এই task-এ এখনই PR করতে হবে না — exposure-ই enough)

🎁 আরও সাহায্য চাই? Bonus Resources দেখুন

📌 সংক্ষেপে — Summary

🎉 আপনি এখন real team-এর মতো GitHub workflow follow করতে পারেন। পরের পর্বে আমরা শিখব Merge Conflict — দুজন একই line edit করলে কী হয়, কীভাবে fix করতে হয়।

← আগের পর্ব
পর্ব ৭: Branch ও Merge
পরের পর্ব →
পর্ব ৯: Merge Conflicts

📬 পরের পর্ব মিস করতে চান না?

ShadhinPath Newsletter subscribe করুন — Git & GitHub সিরিজের প্রতিটি পর্ব সরাসরি inbox-এ।

📬 Newsletter Subscribe 📚 সম্পূর্ণ সিরিজ

📧 Question? hello@shadhinpath.com

f

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

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

👍 Facebook-এ Follow করুন