আগের পর্বে আমরা My Portfolio Website project তৈরি করেছি এবং প্রথম commit করেছি — কিন্তু সব এখনও আপনার computer-এ local-এ। আজ আমরা সেটা online নিয়ে যাব — GitHub-এ upload করব।

এই পর্ব শেষে আপনার project-এর একটি live URL থাকবে — যেটা সারা পৃথিবী দেখতে পারবে। Employer-দের আপনি এই link share করতে পারবেন। এটাই আপনার public coding portfolio-র প্রথম step

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

📂 Repository কী?

Repository (সংক্ষেপে repo) হলো GitHub-এর একটি project folder। আপনার computer-এ যেমন একটি my-portfolio-website folder আছে — GitHub-এ ঠিক সেরকম একটি repository থাকবে।

Local Repository vs Remote Repository

আমাদের কাজ: এই দুটিকে connect করা, তারপর local-এর সব history remote-এ push করা।

🌐 Public vs Private Repository — কোনটা বেছে নেবেন?

🌍 Public Repository

সারা পৃথিবী আপনার code দেখতে পারে।

  • ✅ 100% Free — unlimited
  • ✅ Portfolio হিসেবে use করা যায়
  • ✅ Recruiter-রা দেখতে পারে
  • ✅ Search engine index করে
  • ⚠️ Sensitive তথ্য (password, API key) এড়িয়ে চলুন

🔒 Private Repository

শুধু আপনি (ও invited collaborator) দেখতে পারে।

  • ✅ Free (unlimited collaborators-সহ since 2020)
  • ✅ Business / client project
  • ✅ Sensitive কাজের জন্য
  • ❌ Portfolio হিসেবে use করা কঠিন
  • ⚠️ GitHub Actions-এ limit আছে

💡 Beginner-দের জন্য recommendation

Public দিয়েই শুরু করুন। আপনার portfolio website, learning project, tutorial follow করা code — সব public। Employer-রা public profile দেখেই আপনাকে judge করবে। Private তখনই use করুন যখন code-এ কোনো sensitive তথ্য থাকবে।

📋 README.md কী?

README.md হলো একটি text file যেটি repository-এর first impression তৈরি করে। যেকেউ আপনার GitHub repo-তে আসলে, এই file-এর content প্রথম দেখবে।

একটি basic README কেমন দেখায়?

# My Portfolio Website A simple HTML/CSS portfolio website by [Your Name]. ## About - HTML5 - CSS3 - Mobile responsive ## How to Run 1. Clone this repo 2. Open `index.html` in browser 3. Enjoy! ## Author [Your Name] — Bangladesh / USA

README নিয়ে details এই series-এর শেষে template-সহ আসবে। আজকের জন্য — একটি simple README আমরা তৈরি করব।

🚀 Step-by-Step: GitHub Account তৈরি করুন

যদি আগেই account না থাকে, ২ মিনিটে তৈরি করুন:

github.com/join-এ যান

Browser-এ এই URL খুলুন। একটি signup form খুলবে।

Email ও Password দিন

Username Choose করুন (গুরুত্বপূর্ণ!)

Username = আপনার GitHub URL: github.com/your-username

Professional username use করুন। উদাহরণ:

Employer এটা দেখবে — তাই serious নাম দিন।

Email Verify করুন

GitHub আপনার email-এ একটি code পাঠাবে। সেটা enter করুন।

Free Plan Select করুন

GitHub Free plan beginner-দের জন্য যথেষ্ট। "Continue for free" click করুন।

Account তৈরি! 🎉 এখন GitHub-এ login state-এ আছেন।

🆕 Step-by-Step: প্রথম Repository তৈরি করুন

"+" Icon-এ click করুন

GitHub-এর top-right corner-এ একটি "+" icon দেখবেন। সেখানে click → "New repository" select করুন।

Repository Name দিন

Type করুন: my-portfolio-website

(আপনার local folder-এর সাথে এক নাম দেওয়া best practice)

Description (Optional)

Type করুন: My personal portfolio website built with HTML & CSS

Public Select করুন

"Public" radio button selected রাখুন (default)।

⚠️ এই Boxes UNCHECKED রাখুন

নিচের তিনটি option-এ checkbox tick করবেন না:

কারণ আমাদের local-এ আগে থেকেই project আছে — GitHub নতুন কিছু create করুক চাই না।

"Create repository" Click করুন

একটি page খুলবে যেখানে কিছু command দেখাবে। এই commands গুলো আমরা পরের section-এ use করব।

🔗 Local এবং Remote Repository Connect করা

এখন আসল মজা। Terminal খুলুন এবং আপনার local project folder-এ যান:

$ cd Desktop/my-portfolio-website $ pwd /Users/yourname/Desktop/my-portfolio-website

Command 1: git remote add origin

Local Git-কে GitHub repository-র URL জানিয়ে দিন:

$ git remote add origin https://github.com/your-username/my-portfolio-website.git

your-username-এর জায়গায় আপনার আসল GitHub username দিন।

এই command কী করে?

Verify করুন:

$ git remote -v origin https://github.com/your-username/my-portfolio-website.git (fetch) origin https://github.com/your-username/my-portfolio-website.git (push)

দুই line দেখা মানে — connection set! ✅

Command 2: git branch -M main

আপনার current branch-এর নাম main set করুন (যদি আগে থেকে main না হয়):

$ git branch -M main

এই command:

পুরোনো Git-এ default branch নাম ছিল master। ২০২০ সাল থেকে GitHub change করেছে main-এ। এই command-এ আপনার branch main-এ rename হবে।

🔐 Authentication — Personal Access Token (PAT)

⚠️ Important: GitHub এখন password support করে না

আগে আপনি GitHub password দিয়ে authenticate করতেন। ২০২১ সাল থেকে GitHub এটা বন্ধ করে দিয়েছে। এখন আপনাকে Personal Access Token (PAT) use করতে হবে — যেটা একটি specially-generated password।

Personal Access Token কীভাবে তৈরি করবেন?

GitHub Settings-এ যান

GitHub-এ login → আপনার profile picture click → "Settings"

Developer Settings → Personal Access Tokens

Settings page-এর সবচেয়ে নিচে scroll করুন → "Developer settings" → "Personal access tokens" → "Tokens (classic)"

সরাসরি যেতে: github.com/settings/tokens

"Generate new token (classic)" Click

সবচেয়ে নিচে "Generate token" click করুন।

Token Copy করে রাখুন

GitHub আপনাকে একটি দীর্ঘ token দেখাবে — যেমন: ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxx

🔥 এই token-টা এখনি কোথাও save করে রাখুন!

Page refresh করলে এই token আর দেখাবে না। একটি secure place-এ (password manager, encrypted note) save করুন। হারিয়ে গেলে নতুন token generate করতে হবে।

📤 প্রথম Push: git push -u origin main

এখন সব ready! আপনার local code GitHub-এ upload করুন:

$ git push -u origin main

এই command-এর breakdown:

Authentication Prompt

প্রথমবার push-এ Git আপনাকে credentials চাইবে:

Username for 'https://github.com': your-username Password for 'https://your-username@github.com': PASTE YOUR PAT HERE

💡 Password paste হচ্ছে না দেখা যাচ্ছে?

Terminal-এ password type করার সময় কিছু দেখায় না — security feature। আপনি paste করুন এবং Enter চাপুন — দেখবেন কাজ হয়েছে।

Successful Push

Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 8 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (4/4), 543 bytes | 543.00 KiB/s, done. Total 4 (delta 0), reused 0 (delta 0), pack-reused 0 To https://github.com/your-username/my-portfolio-website.git * [new branch] main -> main branch 'main' set up to track 'origin/main'.

🎉 আপনার project এখন GitHub-এ live!

🌐 GitHub-এ Project Check করুন

Browser-এ যান: https://github.com/your-username/my-portfolio-website

আপনি দেখতে পাবেন:

File-এ click করলে — content দেখাবে। ঠিক যেমনটা আপনার computer-এ আছে — অবিকল।

📝 README.md Add করুন

এখন project-কে আরও professional বানাই। একটি README.md file add করুন:

Step 1: Local-এ README.md তৈরি করুন

Text editor-এ my-portfolio-website folder-এ README.md file তৈরি করুন:

# My Portfolio Website My personal portfolio website built with HTML and CSS. ## Features - About Me section - Skills showcase - Contact information ## Author [Your Name] — learning with ShadhinPath.com

Step 2: Stage, Commit, Push

$ git status # দেখবেন README.md untracked $ git add README.md $ git commit -m "Added README" $ git push # এবার শুধু git push চালালেই হবে — কারণ -u set করা আছে

GitHub refresh করুন — README.md এখন automatically display হবে repository-এর homepage-এ। 🎨

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

Commandকী করে
git remote add origin URLLocal-কে remote-এর সাথে connect করে
git remote -vসব configured remote দেখায়
git branch -M mainCurrent branch-এর নাম main set করে
git push -u origin mainপ্রথমবার push — upstream set
git pushপরবর্তী push (upstream set থাকলে)

⚠️ Common Beginner Mistakes

1. Regular Password দিয়ে authenticate করার চেষ্টা

সমস্যা: "Authentication failed" error।

সমাধান: GitHub password নয় — Personal Access Token use করুন।

2. Repository URL-এ ভুল

সমস্যা: fatal: 'origin' does not appear to be a git repository

সমাধান: git remote -v দিয়ে URL check করুন। ভুল হলে remove করে আবার add:

$ git remote remove origin $ git remote add origin CORRECT-URL

3. README checkbox tick করে repository তৈরি করা

সমস্যা: Local-এ আগে থেকে commit আছে, GitHub-এও আলাদা README আছে — push করতে গিয়ে conflict।

সমাধান: Beginner হিসেবে repository তৈরির সময় কোনো option checkbox tick করবেন না।

4. Wrong directory থেকে push চালানো

সমস্যা: fatal: not a git repository

সমাধান: cd দিয়ে আপনার project folder-এ যান। pwd দিয়ে confirm করুন।

5. PAT-এর scope-এ repo tick না করা

সমস্যা: "Permission denied" error।

সমাধান: নতুন PAT generate করুন — repo scope tick করতে ভুলবেন না।

6. Sensitive file (password, API key) push করে ফেলা

সমস্যা: Public repo-তে আপনার secret key publicly exposed।

সমাধান: Push-এর আগে file content double-check করুন। API key থাকলে — সেটা সেই service-এ গিয়ে immediately revoke করুন এবং নতুন generate করুন। .gitignore use করে sensitive file exclude করুন (পরের পর্বগুলোতে শিখব)।

📝 Practice Tasks

Task 1: GitHub Account + Repository তৈরি

  1. GitHub account তৈরি করুন (যদি না থাকে)
  2. একটি Personal Access Token generate করুন (90 days, repo scope)
  3. my-portfolio-website নামে public repository তৈরি করুন
  4. কোনো checkbox tick করবেন না

Task 2: Local Project Upload

  1. Terminal-এ আপনার local my-portfolio-website folder-এ যান
  2. git remote add origin YOUR-URL চালান
  3. git branch -M main
  4. git push -u origin main — PAT দিয়ে authenticate
  5. Browser-এ আপনার GitHub repo URL খুলে confirm করুন

Task 3: README Add করুন

  1. Local-এ README.md file তৈরি করুন
  2. আপনার নিজের তথ্য (নাম, project description, features) লিখুন
  3. git add README.mdgit commit -m "Added README"git push
  4. GitHub refresh করুন — README homepage-এ দেখা যাচ্ছে কিনা?

Task 4: Share করুন!

আপনার repository-র URL https://github.com/your-username/my-portfolio-website বন্ধু-বান্ধবের সাথে share করুন। এটাই আপনার first public coding project! ভবিষ্যতে resume-এ এই link দেবেন।

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

📌 সংক্ষেপে — Summary

🎉 আপনার project এখন GitHub-এ live! পরের পর্বে আমরা শিখব daily Git workflow — যেটা real developers-রা প্রতিদিন ব্যবহার করেন।

← আগের পর্ব
পর্ব ৪: প্রথম Git Project
পরের পর্ব →
পর্ব ৬: Daily Git Workflow

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

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