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

গিট এবং গিটহাবের মধ্যে মূল পার্থক্যগুলো একনজরে দেখে নাও। এটা নিয়ে শুরুর দিকে অনেকের মধ্যে বিভ্রান্তি থাকতে পারে। একবারে ক্লিয়ার করে নাও:

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-এ রেখে দাও যাতে সবাই দেখতে পায়।

Remote Repositories

রিমোট রিপোজিটরির সাথে তোমার লোকাল প্রজেক্ট কানেক্ট করার কমান্ডগুলো দেখে নাও।

Remote Overview

রিমোট রিপোজিটরি আসলে কী এবং এটি কীভাবে কাজ করে তার একটি সংক্ষিপ্ত ধারণা।

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

Terminal
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 নাম।

Fetch & Pull

গিটহাব থেকে পরিবর্তন ডাউনলোডের এই দুই পদ্ধতির মূল পার্থক্য চিনে নাও।

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

Git Fetch

গিটহাব থেকে নতুন পরিবর্তনগুলো ডাউনলোড করো কিন্তু লোকাল ফাইলে অ্যাপ্লাই না করে। এর মাধ্যমে তুমি আগে দেখতে পারো কী কী পরিবর্তন এসেছে।

Terminal
git fetch origin

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

Git Pull

গিটহাব থেকে লেটেস্ট পরিবর্তনগুলো নামিয়ে সরাসরি তোমার বর্তমান কোডে যুক্ত (Apply) করো।

Terminal
git pull

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

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

Usage Selection

কখন ফেচ (Fetch) আর কখন পুল (Pull) ব্যবহার করবে তার একটি সহজ নির্দেশিকা।

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

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

Pull Requests

টিম বা ওপেন সোর্স প্রজেক্টে তোমার করা কাজগুলো রিভিউয়ের জন্য পাঠানোর প্রক্রিয়া।

PR Concept

পুল রিকোয়েস্ট বা PR এর মূল কনসেপ্ট এবং এটি কেন গুরুত্বপূর্ণ তা বুঝে নাও।

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

Branch push করো

Terminal
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 করো।

Code Review

অন্যের কোড রিভিউ করা এবং প্রফেশনাল ফিডব্যাক দেওয়ার সঠিক নিয়ম।

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

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

Merge Strategies

কোড সফলভাবে রিভিউ হওয়ার পর তা মার্জ করার বিভিন্ন প্রফেশনাল পদ্ধতি।

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 চাইলে

প্রফেশনাল কাজের সুবিধার্থে “Squash and merge” ব্যবহার করা সবচেয়ে জনপ্রিয়। এতে হিস্ট্রি ক্লিন থাকে।

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

Issue Tracking

প্রজেক্টের বাগ ট্র্যাকিং এবং ফিচার ম্যানেজমেন্টের জন্য গিটহাব ইস্যু ব্যবহারের নিয়ম।

Issue হলো GitHub-এর task management system

Issue Linking

সরাসরি ইস্যু থেকে ব্রাঞ্চ তৈরি করে কাজের ট্র্যাকিং নিখুঁত রাখার প্রফেশনাল পদ্ধতি।

পেশাদার কাজের ক্ষেত্রে সরাসরি ইস্যু থেকে ব্রাঞ্চ তৈরি করা একটি সর্বোত্তম অনুশীলন (Best Practice)। এটি ব্রাঞ্চ এবং ইস্যুকে সরাসরি লিঙ্ক করে রাখে।

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

Reference Issue

তোমার করা কাজের নির্দিষ্ট ইস্যু নাম্বার বা রেফারেন্স কমিট মেসেজে যুক্ত করো। এতে ইস্যু ট্র্যাকিং অনেক সহজ হয়।

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

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

Forking Workflow

অন্যের কোনো প্রজেক্টে কন্ট্রিবিউট করার আগে সেটি নিজের অ্যাকাউন্টে কপি করে নেওয়ার ধাপ।

Fork Concept

ফর্ক আসলে কী এবং এর মাধ্যমে কীভাবে অন্য প্রজেক্টে কন্ট্রিবিউট শুরু করা যায়।

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

Fork করো

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

Fork clone করো

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

Upstream Setup

অরিজিনাল প্রোজেক্টের সাথে তোমার ফর্কটি কানেক্ট করার প্রফেশনাল ধাপ।

অরিজিনাল রিপোজিটরিকে “upstream” হিসেবে যুক্ত করে তোমার ফর্ক আপডেট রাখো। এটি অরিজিনাল প্রোজেক্টের পরিবর্তনগুলো ট্র্যাক করতে সাহায্য করে।

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

Active Development

ফর্ক করা প্রজেক্টে পরিবর্তন আনা এবং নিজের রিমোট রিপোজিটরিতে পুশ করা।

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

Submit PR

তোমার তৈরি করা ফর্ক থেকে অরিজিনাল রিপোজিটরিতে কাজের রিকোয়েস্ট (PR) পাঠানোর প্রক্রিয়া এখানে দেওয়া হলো।

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

Sync Fork

অরিজিনাল প্রোজেক্টের লেটেস্ট আপডেটের সাথে নিজের ফর্ক সবসময় সিঙ্ক রাখার নিয়ম।

অরিজিনাল প্রোজেক্টের নতুন পরিবর্তনগুলোর সাথে তোমার ফর্ক সবসময় সিঙ্ক (Sync) রাখো।

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

Common Problems & Fixes

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

Terminal
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 দেখবে।

Search Keywords: git remote, fetch vs pull, create pull request, code review, fork repository, squash merge

Last updated on