Skip to Content
DocsGit & GitHubGitHub Essentials

GitHub Essentials

Essential | Estimated time: 60–90 minutes

এতক্ষণ তুমি Git শিখেছ — যেটা তোমার local machine-এ কাজ করে। এখন GitHub শিখবে — যেটা দিয়ে তোমার কাজ দুনিয়ার সাথে share হয় এবং team-এর সাথে collaborate করা যায়।

What You’ll Learn

  • Git আর GitHub-এর পার্থক্য (once and for all)
  • git remote — local repo আর GitHub-এর connection
  • git fetch vs git pull — পার্থক্য বোঝা
  • GitHub UI-এর গুরুত্বপূর্ণ অংশগুলো
  • Pull Request (PR) — বানানো, review করা, merge করা
  • Issues — task এবং bug track করা
  • Fork — অন্যের repo নিয়ে কাজ করা

Git vs GitHub — পার্থক্য কী?

এটা নিয়ে অনেক নতুনরা confused থাকে। একবারে clear করে নাও:

GitGitHub
কীSoftware (tool)Website (platform)
কোথায় থাকেতোমার computer-এInternet-এ
কাজVersion history track করেCode host করে, team collaboration করায়
Internet লাগে?নাহ্যাঁ
বিকল্প আছে?না (Git-ই standard)হ্যাঁ — GitLab, Bitbucket

সহজ কথায়: Git হলো engine, GitHub হলো garage। তোমার গাড়ি (code) Git দিয়ে চলে, GitHub-এ রেখে দাও যাতে সবাই দেখতে পায়।

Part 1: git remote

Remote কী?

“Remote” মানে একটা দূরের repository-র address — সাধারণত GitHub-এ। তোমার local repo জানে কোথায় push করতে হবে, কোথা থেকে pull করতে হবে — এই information remote-এ থাকে।

git remote -v

Output:

origin git@github.com:username/my-project.git (fetch) origin git@github.com:username/my-project.git (push)

origin হলো remote-এর নাম — এটা default নাম।

Part 2: fetch vs pull

এই দুইটা নিয়ে অনেকে confused হয়। পার্থক্যটা জানা দরকার।

git fetch — দেখো কিন্তু নামাও না

git fetch origin

এটা GitHub থেকে নতুন changes download করে কিন্তু তোমার files-এ apply করে না। তুমি আগে দেখতে পারবে কী কী এসেছে, তারপর decide করবে।

git pull — নামাও এবং apply করো

git pull

এটা আসলে দুইটা কাজ একসাথে করে:

  1. git fetch — changes download করে
  2. git merge — তোমার current branch-এ apply করে

কখন কোনটা?

SituationCommand
কাজ শুরুর আগে latest নামাওgit pull
দেখতে চাও কী এসেছে, apply করবে কিনা ঠিক করোনিgit fetch
Team-এর কাজ দেখতে চাও নিজের কাজ না ভেঙেgit fetch

Daily life-এ বেশিরভাগ সময় git pull ই ব্যবহার হয়। git fetch advanced situation-এ কাজে আসে।

Part 3: Pull Request

PR কী?

PR মানে “আমার branch-এর কাজ main-এ নিয়ে যাও” — এটা একটা formal request। Professional team-এ কেউ directly main-এ push করে না। সব কাজ PR-এর মাধ্যমে যায়।

Branch push করো

git push -u origin feature/user-profile

GitHub-এ PR খোলো

GitHub-এ যাও। Push করার পর “Compare & pull request” button click করো।

PR Form পূরণ করো

Base: main ← কোথায় merge হবে Compare: feature/user-profile ← কোনটা merge হবে Title: Add user profile page

Reviewer Assign করো

Right sidebar-এ:

  • Reviewers → teammate select করো
  • Assignees → নিজেকে assign করো

Create Pull Request

“Create pull request” button click করো।

PR Review করা

তোমার teammate তোমাকে review করতে বলেছে। কী করবে?

  1. Code দেখো: Files changed tab-এ যাও।
  2. Comment করো: line number-এর পাশে ”+” click করো।
  3. Review Submit করো: “Review changes” button-এ click করো এবং Approve বা Request changes দাও।

PR Merge করা

Approve হওয়ার পর merge করার ৩টা option:

Optionকী করেকখন ব্যবহার
Merge commitসব commits রাখে + একটা merge commit যোগ করেHistory detail রাখতে চাইলে
Squash and mergeসব commits একটায় মিলিয়ে দেয়Clean history চাইলে (most popular)
Rebase and mergeCommits গুলো main-এর উপর রাখেLinear history চাইলে

Beginner হিসেবে “Squash and merge” ব্যবহার করো। History clean থাকে।

Merge করার পর GitHub বলবে “branch delete করবে?” — Delete branch click করো।

Part 4: Issues

Issue হলো GitHub-এর task management system

Issue থেকে Branch বানাও (best practice)

Issue page-এ right sidebar-এ “Create a branch” option আছে। এটা automatically branch বানায় issue number সহ: 1-login-button-not-working। এতে branch এবং issue automatically linked থাকে।

Commit-এ Issue Reference করো

git commit -m "Fix login button on Safari — closes #1"

closes #1 লিখলে PR merge হওয়ার সাথে সাথে Issue automatically close হয়ে যাবে।

Part 5: Fork

Fork কী?

Fork মানে অন্যের repository-র একটা copy তোমার GitHub account-এ নেওয়া।

Fork করো

GitHub-এ repository-তে যাও → উপরে Fork button → Create fork

Fork clone করো

git clone git@github.com:তোমার-username/repository-name.git cd repository-name

Original repo-কে “upstream” হিসেবে add করো

git remote add upstream git@github.com:original-owner/repository-name.git

কাজ করো, push করো

git switch -c fix/typo-in-readme git add . git commit -m "Fix typo in README" git push origin fix/typo-in-readme

Original repo-তে PR পাঠাও

GitHub-এ তোমার fork-এ যাও → Compare & pull request → Original repo-তে PR পাঠাও।

Fork সবসময় updated রাখো

git fetch upstream git switch main git merge upstream/main git push origin main

Checklist

  • git remote -v দিয়ে remote দেখেছি
  • git fetch এবং git pull এর পার্থক্য বুঝেছি
  • GitHub-এ PR বানিয়েছি
  • PR review করেছি এবং comment দিয়েছি
  • Issue বানিয়েছি এবং commit-এ reference করেছি
  • একটা repo fork করেছি এবং upstream add করেছি

Common Problems & Fixes

main branch আগে বেড়ে গেছে, তোমার branch পুরনো হয়ে গেছে।

git switch feature/your-branch git fetch origin git merge origin/main # conflict fix করো git add . git commit -m "Resolve merge conflicts with main" git push

What’s Next?

Git এবং GitHub-এর core সব শেখা হয়ে গেছে। এখন real-world scenarios শিখবে।

→ Real Scenarios

Team project, client project, এবং open source contribution — তিনটা আলাদা real situation-এ কীভাবে Git + GitHub ব্যবহার করতে হয়, সেটা A to Z দেখবে।

Last updated on