এখন পর্যন্ত আমরা theory শিখেছি — আজ থেকে আসল মজা শুরু! এই পর্বে আপনি আপনার প্রথম Git project তৈরি করবেন: My Portfolio Website। এই project আমরা পুরো series-এ ধাপে ধাপে build করব।

আজকে আপনি শিখবেন Git-এর সবচেয়ে important ৫টি command — যেগুলো প্রতিদিন আপনি ব্যবহার করবেন।

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

🧠 প্রথমে একটি Concept বুঝুন: Git-এর ৩টি Area

Git বুঝতে গেলে এই ৩টি area-র concept clear থাকা must। আপনার file এই ৩টি জায়গায় থাকতে পারে:

📝

1. Working Directory

আপনার folder — যেখানে আপনি edit করছেন। Git এখনও কিছু track করেনি।

📦

2. Staging Area

"Ready to commit" — যে file গুলো আপনি commit করতে চান, সেগুলো এখানে রাখেন।

git add

💾

3. Repository (Commits)

Permanent save। Git এখানে snapshot রাখে।

git commit

একটি সহজ analogy দিয়ে বুঝি:

মনে করুন আপনি একটি package post office-এ পাঠাচ্ছেন:

Git-এ:

চলুন এখন hands-on practice করি।

📁 Step 1: My Portfolio Website Folder তৈরি করুন

আপনার Terminal/Git Bash খুলুন। প্রথমে এমন একটি location-এ যান যেখানে আপনি project রাখতে চান (e.g., Desktop):

# Desktop-এ যান $ cd Desktop # Verify করুন — কোথায় আছেন $ pwd /Users/yourname/Desktop

💡 কয়েকটি useful command

এবার project folder তৈরি করুন:

# Folder তৈরি করুন $ mkdir my-portfolio-website # Folder-এ ঢুকুন $ cd my-portfolio-website # Verify — খালি folder $ ls (কিছু দেখাবে না — folder খালি)

mkdir = Make Directory (folder তৈরি করুন)। my-portfolio-website হলো folder-এর নাম।

📄 Step 2: প্রথম File তৈরি করুন

এখন একটি index.html file তৈরি করুন। দুটি উপায়:

উপায় ১: Text Editor দিয়ে (Recommended)

VS Code, Sublime Text, Notepad++ — যে কোনো text editor খুলে নতুন file তৈরি করুন। নিচের content paste করুন এবং my-portfolio-website folder-এ index.html নামে save করুন:

<!DOCTYPE html> <html lang="bn"> <head> <meta charset="UTF-8"> <title>My Portfolio</title> </head> <body> <h1>Hi, I'm [Your Name]</h1> <p>Welcome to my portfolio website!</p> </body> </html>

উপায় ২: Terminal থেকে (Quick)

Mac/Linux/Git Bash-এ:

$ echo "<h1>My Portfolio</h1>" > index.html

এটি একটি simple HTML file তৈরি করবে। পরে আপনি editor-এ open করে আরও content add করতে পারবেন।

🚀 Step 3: git init — Git Tracking শুরু করুন

Git-কে বলতে হবে: "এই folder-টা track করো।" এটাই git init command-এর কাজ:

$ git init Initialized empty Git repository in /Users/yourname/Desktop/my-portfolio-website/.git/

git init আসলে কী করে?

এই command চালালে Git আপনার folder-এ একটি hidden folder তৈরি করে: .git/ — এখানে সব history, commits, branches stored থাকবে।

⚠️ .git folder কখনো manually edit বা delete করবেন না

এটা delete করলে আপনার সব history চলে যাবে — Git আবার "untracked" folder হয়ে যাবে।

Verify করুন .git folder তৈরি হয়েছে কিনা:

# Hidden file সহ list দেখুন $ ls -a . .. .git index.html

.git দেখা মানে — আপনার folder এখন Git repository! 🎉

🔍 Step 4: git status — File-এর State দেখুন

git status হলো সবচেয়ে বেশি ব্যবহৃত Git command। এটি আপনাকে বলে — "এখন কী situation?"

$ git status On branch main No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) index.html nothing added to commit but untracked files present (use "git add" to track)

এই output-টা কী বলছে?

📦 Step 5: git add — Staging Area-তে File রাখুন

Git-কে বলুন এই file-টা track করতে এবং পরের commit-এ include করতে:

# একটি specific file add করুন $ git add index.html # অথবা — সব file একসাথে add করুন $ git add .

git add . মানে — current folder-এর সব file add করুন। ছোট project-এ এটাই সবচেয়ে সহজ।

এখন আবার status check করুন:

$ git status On branch main No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: index.html

এখন file-টা সবুজ রঙে দেখাচ্ছে — মানে এটা Staging Area-তে চলে গেছে। Commit করার জন্য ready! 📦

💾 Step 6: git commit — Permanent Save করুন

এবার Git-কে বলুন — "এই version-টা permanently save করো":

$ git commit -m "Initial commit - added index.html" [main (root-commit) a3f2c1b] Initial commit - added index.html 1 file changed, 7 insertions(+) create mode 100644 index.html

এই command-এর breakdown:

💡 Commit Message-এর গুরুত্ব

Commit message লেখার সময় ভাবুন — "৬ মাস পরে আমি যখন এই commit দেখব, কী বুঝব?"

✅ Good: "Added contact form to about page"
❌ Bad: "updates" বা "fix" বা "asdf"

এখন আবার status check করুন:

$ git status On branch main nothing to commit, working tree clean

"nothing to commit, working tree clean" — মানে সব ঠিকঠাক saved। কোনো pending change নেই।

📜 Step 7: git log — Commit History দেখুন

এখন পর্যন্ত যত commit করেছেন — সব দেখতে:

$ git log commit a3f2c1b8d9e7f6a5b4c3d2e1f0a9b8c7d6e5f4a3 (HEAD -> main) Author: Your Name <hello@shadhinpath.com> Date: Sat May 30 21:30:00 2026 -0400 Initial commit - added index.html

প্রতিটি commit-এ যা দেখায়:

Short version দেখতে চান?

$ git log --oneline a3f2c1b (HEAD -> main) Initial commit - added index.html

এক লাইনে — অনেক commit থাকলে scan করা সহজ।

🔄 আরেকটি Change এবং Commit করুন

একটাই commit করে চলে গেলে practice হবে না। আরেকটি commit করি — পুরো flow আবার দেখুন।

Step A: index.html edit করুন

Text editor-এ index.html খুলে নিচের লাইন যোগ করুন <body> tag-এর ভিতরে:

<h2>About Me</h2> <p>I'm learning Git and GitHub with ShadhinPath.</p>

Save করুন।

Step B: Status check

$ git status On branch main Changes not staged for commit: modified: index.html no changes added to commit (use "git add" and/or "git commit -a")

"modified" — মানে Git দেখেছে file change হয়েছে, কিন্তু staged না।

Step C: Add + Commit

$ git add index.html $ git commit -m "Added About Me section" [main 7c5d3e1] Added About Me section 1 file changed, 2 insertions(+)

Step D: Log check

$ git log --oneline 7c5d3e1 (HEAD -> main) Added About Me section a3f2c1b Initial commit - added index.html

দুটি commit এখন history-তে! 🎉

📋 সব Commands এক জায়গায় (Reference)

Commandকী করে
mkdir folder-nameনতুন folder তৈরি করে
cd folder-nameFolder-এ ঢোকে
pwdবর্তমান path দেখায়
lsFolder-এ file list দেখায়
git initGit tracking শুরু করে (একবার)
git statusবর্তমান state দেখায়
git add <file>একটি file stage করে
git add .সব file stage করে
git commit -m "msg"Staged file save করে
git logসব commit history দেখায়
git log --onelineShort version log

⚠️ Common Beginner Mistakes

1. git add ভুলে যাওয়া

File edit করার পর সরাসরি git commit চালালে error পাবেন — "nothing to commit"। মনে রাখুন: edit → add → commit — এই order।

2. Commit Message ছাড়া

git commit (without -m) চালালে একটি editor খুলবে (যেমন Vim/Nano)। Beginner-দের জন্য এটা confusing — সবসময় -m flag ব্যবহার করুন।

3. ভুল Folder-এ git init

আপনি Desktop-এ git init চালিয়ে দিলেন — এখন Desktop-এর সব file Git track করার চেষ্টা করবে। সবসময় প্রথমে cd দিয়ে সঠিক folder-এ যান।

4. .git Folder Delete করে ফেলা

এটি hidden folder — কখনো হাতে delete করবেন না। সব history হারিয়ে যাবে।

5. একটি Commit-এ অনেক change

১০টি unrelated change একসাথে commit করলে — পরে এর কোনটা problem তৈরি করেছে বুঝতে পারবেন না। ছোট ছোট logical commit ভালো।

📝 Practice Tasks

Task 1: My Portfolio Website তৈরি করুন

Step-by-step follow করুন:
  1. Desktop-এ my-portfolio-website folder তৈরি করুন
  2. index.html file তৈরি করুন আপনার নাম দিয়ে
  3. git init চালান
  4. git status চালান — output পড়ুন
  5. git add . চালান
  6. git commit -m "Initial commit" চালান
  7. git log চালান — আপনার নাম দেখা যাচ্ছে কিনা confirm করুন

Task 2: Multiple Commits করুন

Index.html-এ ৩টি আলাদা change করুন (প্রতিবার add + commit):
  1. "About Me" section যোগ করুন → commit
  2. "Skills" section যোগ করুন → commit
  3. "Contact" section যোগ করুন → commit
শেষে git log --oneline চালান — ৪টি commit দেখা যাবে।

Task 3: Style.css File Add করুন

  1. একটি style.css file তৈরি করুন (কিছু basic CSS দিয়ে)
  2. git status চালান — untracked দেখাবে
  3. git add style.css চালান
  4. git commit -m "Added basic styling"

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

📌 সংক্ষেপে — Summary

এখন পর্যন্ত সব কাজ আপনার computer-এ local-এ হয়েছে। পরের পর্বে আমরা শিখব কীভাবে এই project GitHub-এ online upload করতে হয়! 🚀

← আগের পর্ব
পর্ব ৩: Install ও Setup
পরের পর্ব →
পর্ব ৫: GitHub Upload

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

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 করুন