GitHub হল Git রিপোজিটরি হোস্টিং, সহযোগিতামূলক ডেভেলপমেন্ট এবং প্রক্রিয়া অটোমেশনের জন্য বৃহত্তম ওয়েব প্ল্যাটফর্ম, যা Microsoft-এর মালিকানাধীন। এটি শুধু ভার্সন কন্ট্রোলসহ কোড সঞ্চয়স্থানই নয়, বরং প্রজেক্ট ম্যানেজমেন্ট টুলের একটি পূর্ণ সেট সরবরাহ করে: Issue Tracking, কোড রিভিউসহ Pull Request, CI/CD-র জন্য Actions এবং ডকুমেন্টেশনের জন্য Wiki। GitHub, 2024-এর তথ্য অনুসারে, প্ল্যাটফর্মটিতে 100 মিলিয়নেরও বেশি ডেভেলপার এবং 420 মিলিয়ন রিপোজিটরি রয়েছে।
মূল বিষয়
GitHub হল Git রিপোজিটরিতে সঞ্চয় এবং সহযোগিতার জন্য একটি ওয়েব সার্ভিস, যা 2008 সালে Tom Preston-Werner, Chris Wanstrath এবং PJ Hyett প্রতিষ্ঠা করেছিলেন। 2018 সালে, কোম্পানিটি Microsoft 7.5 বিলিয়ন ডলারে অধিগ্রহণ করেছিল। প্ল্যাটফর্মটি সমস্ত Git অপারেশনের জন্য একটি ওয়েব ইন্টারফেস সরবরাহ করে, যার সাথে সামাজিক বৈশিষ্ট্য যুক্ত করা হয়েছে: forks, তারা, সাবস্ক্রিপশন, কোড রিভিউ এবং একটি অন্তর্নির্মিত একটানা একীকরণ সিস্টেম।
GitHub এবং এর প্রতিযোগীদের মধ্যে মূল পার্থক্য হল এর উন্মুক্ত ইকোসিস্টেম এবং বৃহত্তম ডেভেলপার সম্প্রদায়। GitHub Android, Kubernetes, React, Swift, Kotlin এবং হাজার হাজার অন্যান্য ওপেন-সোর্স প্রজেক্টের সোর্স কোড হোস্ট করে। এটি প্ল্যাটফর্মটিকে শুধু কোড সঞ্চয়ের টুলই নয়, বরং ডেভেলপারদের জন্য একটি সামাজিক নেটওয়ার্কও করে তোলে: আপনি প্রজেক্ট ফলো করতে, পরিবর্তন নিয়ে আলোচনা করতে এবং pull requests-এর মাধ্যমে অবদান রাখতে পারেন।
Microsoft রিপোর্ট (2024) অনুসারে, প্রতিদিন 10 মিলিয়নেরও বেশি নতুন Pull Requests GitHub-এর মাধ্যমে যায় এবং মাসিক সক্রিয় ব্যবহারকারীর সংখ্যা 100 মিলিয়ন ছাড়িয়ে গেছে। প্ল্যাটফর্মটি 500 টিরও বেশি প্রোগ্রামিং ভাষা, ফাইল এক্সটেনশন দ্বারা স্বয়ংক্রিয় ভাষা সনাক্তকরণ এবং কোড সিনট্যাক্স হাইলাইটিং সমর্থন করে।
GitHub-এর কার্যকারিতা সাধারণ Git হোস্টিংয়ের চেয়ে অনেক বেশি বিস্তৃত। প্ল্যাটফর্মটি সরবরাহ করে: GitHub Actions — একটি অন্তর্নির্মিত CI/CD সিস্টেম; GitHub Packages — প্যাকেজ এবং কন্টেইনারের জন্য একটি রেজিস্ট্রি; GitHub Codespaces — VS Code-ভিত্তিক ক্লাউড ডেভেলপমেন্ট পরিবেশ; GitHub Discussions — সম্প্রদায়ের জন্য একটি ফোরাম; GitHub Security — স্বয়ংক্রিয় নির্ভরতা আপডেট এবং দুর্বলতা স্ক্যানিংয়ের জন্য Dependabot; GitHub Copilot — কোড লেখার জন্য একটি AI সহায়ক।
প্রতিষ্ঠানের জন্য, GitHub GitHub Enterprise সরবরাহ করে — স্ব-হোস্টেড (GitHub Enterprise Server) বা ক্লাউড ডিপ্লয়মেন্ট (GitHub Enterprise Cloud) সহ একটি এন্টারপ্রাইজ সংস্করণ। এন্টারপ্রাইজ বৈশিষ্ট্যগুলির মধ্যে SAML/SSO প্রমাণীকরণ, অডিট লগিং, রিপোজিটরি সুরক্ষা নীতি এবং 99.95% উপলব্ধতা SLA অন্তর্ভুক্ত। এন্টারপ্রাইজ সংস্করণটি Google, Apple এবং Airbnb-এর মতো কোম্পানিগুলি ব্যবহার করে।
GitHub-এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হল GitHub CLI (gh), যা আপনাকে ওয়েব ইন্টারফেস ব্যবহার না করেই কমান্ড লাইন থেকে সমস্ত প্ল্যাটফর্ম অপারেশন করতে দেয়। gh-এর মাধ্যমে, আপনি রিপোজিটরি তৈরি করতে, Issues পরিচালনা করতে, Pull Requests রিভিউ করতে এবং সরাসরি টার্মিনাল থেকে Actions চালাতে পারেন, যা কমান্ড লাইনে অভ্যস্ত ডেভেলপারদের কাজের গতি বাড়ায়।
| বৈশিষ্ট্য | উদ্দেশ্য | উপলব্ধতা |
|---|---|---|
| Actions | CI/CD এবং অটোমেশন | বিনামূল্যে 2000 মিনিট/মাস |
| Codespaces | VS Code-ভিত্তিক ক্লাউড IDE | পেইড, 60 ঘন্টা/মাস বিনামূল্যে |
| Packages | প্যাকেজ এবং Docker ইমেজ হোস্টিং | বিনামূল্যে 500 MB |
| Dependabot | স্বয়ংক্রিয় নির্ভরতা আপডেট | পাবলিক রেপোর জন্য বিনামূল্যে |
| Pages | স্ট্যাটিক সাইট হোস্টিং | বিনামূল্যে |
Pull Request (PR) হল GitHub-এ একটি প্রজেক্টে পরিবর্তন আনার প্রধান পদ্ধতি। একজন ডেভেলপার পরিবর্তনসহ একটি ব্রাঞ্চ তৈরি করে, এটি GitHub-এ প্রকাশ করে এবং মূল ব্রাঞ্চে একটি মার্জ অনুরোধ (Pull Request) পাঠায়। প্রজেক্টের অন্যান্য অংশগ্রহণকারীরা ব্রাঞ্চগুলোর মধ্যে পার্থক্য (diff) দেখে, নির্দিষ্ট কোড লাইনে মন্তব্য করতে পারে, পরিবর্তন প্রস্তাব করতে পারে এবং অনুরোধ অনুমোদন বা প্রত্যাখ্যান করতে পারে।
GitHub-এ কোড রিভিউ প্রক্রিয়া PR-এর চারপাশে নির্মিত। প্রতিটি মন্তব্য diff-এর একটি নির্দিষ্ট লাইনের সাথে সংযুক্ত থাকে এবং তিন ধরণের হতে পারে: Comment (সাধারণ মন্তব্য), Request Changes(সংশোধন প্রয়োজন) এবং Approve(অনুমোদন)। পরিবর্তন আনার পরে, লেখক একটি নতুন কমিট দিয়ে PR আপডেট করে এবং রিভিউ প্রক্রিয়া পুনরাবৃত্তি হয়। যখন সমস্ত আপত্তি সমাধান হয় এবং PR অনুমোদিত হয়, তখন পরিবর্তনগুলি লক্ষ্য ব্রাঞ্চে মার্জ করা হয়।
# ফিচার ব্রাঞ্চ তৈরি এবং push করা
git checkout -b fix-login-bug
git add src/
git commit -m "Fix login validation error"
git push -u origin fix-login-bug
# CLI-এর মাধ্যমে PR তৈরি
gh pr create --base main --title "Fix login validation" \
--body "Fixed edge case with empty email field"
# PR দেখা এবং মার্জ করা
gh pr review --approve fix-login-bug
gh pr merge --squash fix-login-bug
GitHub ব্রাঞ্চ সুরক্ষা নিয়ম সমর্থন করে: আপনি main-এ সরাসরি push প্রতিরোধ করতে পারেন, মার্জের আগে বাধ্যতামূলক অনুমোদনের সংখ্যা প্রয়োজন করতে পারেন, Actions চেক চালাতে পারেন এবং মার্জের আগে ব্রাঞ্চ আপ-টু-ডেট রাখতে প্রয়োজন করতে পারেন। ব্রাঞ্চ সুরক্ষা Settings → Branches-এ কনফিগার করা হয় এবং প্রোডাকশন প্রজেক্টের জন্য একটি বাধ্যতামূলক অনুশীলন, যা মূল ব্রাঞ্চে অস্থির কোডের আকস্মিক প্রবেশ রোধ করে।
GitHub Actions একটি অন্তর্নির্মিত CI/CD প্ল্যাটফর্ম যা আপনাকে সরাসরি রিপোজিটরিতে ওয়ার্কফ্লো স্বয়ংক্রিয় করতে দেয়। ওয়ার্কফ্লো .github/workflows/ ডিরেক্টরিতে অবস্থিত YAML ফাইলে বর্ণনা করা হয়। প্রতিটি ওয়ার্কফ্লোতে এক বা একাধিক জব থাকে যা runners — Linux, Windows বা macOS-সহ ভার্চুয়াল মেশিনে চলে।
Actions একটি ইভেন্ট-চালিত মডেল সমর্থন করে: ওয়ার্কফ্লো push, PR তৈরি, রিলিজ প্রকাশ, শিডিউলে বা webhook-এর মাধ্যমে ট্রিগার হয়। এটি আপনাকে ডেভেলপারের অংশগ্রহণ ছাড়াই বিল্ড, টেস্ট চালানো, স্ট্যাটিক কোড বিশ্লেষণ, অ্যাপ স্টোরে প্রকাশ এবং সার্ভারে ডিপ্লয়মেন্ট স্বয়ংক্রিয় করতে দেয়। নীচে Android প্রজেক্টের জন্য একটি উদাহরণ ওয়ার্কফ্লো দেওয়া হল:
name: Android CI
on:
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
- name: Build with Gradle
run: ./gradlew assembleDebug
Actions ইকোসিস্টেমে GitHub Marketplace-এ 20,000-এর বেশি রেডি-মেড অ্যাকশন অন্তর্ভুক্ত রয়েছে। জনপ্রিয় অ্যাকশন: checkout (রিপোজিটরি ক্লোন), setup-java/setup-node/setup-python (এনভায়রনমেন্ট সেটআপ), upload-artifact (বিল্ড আর্টিফ্যাক্ট সংরক্ষণ), cache (গতির জন্য নির্ভরতা ক্যাশিং), slack-notify (Slack-এ বিজ্ঞপ্তি পাঠানো)। Actions ম্যাট্রিক্স বিল্ডও সমর্থন করে — একাধিক OS বা ভাষা সংস্করণে একসঙ্গে নির্বাহ।
Issues হল GitHub-এ টাস্ক ট্র্যাকিংয়ের একটি অন্তর্নির্মিত সিস্টেম। প্রতিটি Issue-এর একটি শিরোনাম, বর্ণনা, লেবেল, অ্যাসাইনিজ, মাইলস্টোন এবং লিঙ্কড Pull Requests থাকে। Issues টেমপ্লেট করা যেতে পারে — বাগ রিপোর্ট, ফিচার অনুরোধ বা প্রশ্নের জন্য বিভিন্ন টেমপ্লেট ব্যবহার করা হয়, যা তৈরি করার সময় স্বয়ংক্রিয়ভাবে সন্নিবেশিত হয়।
GitHub Projects (পূর্বে Projects Beta) হল বোর্ড-ভিত্তিক প্রজেক্ট ম্যানেজমেন্ট টুল, যা Jira এবং Trello-এর মতো। Projects কাস্টম ফিল্ড (স্ট্যাটাস, অগ্রাধিকার, স্প্রিন্ট), Issues এবং Pull Requests-এর সাথে লিংকিং, টাস্ক স্ট্যাটাস পরিবর্তনে কার্ড মুভমেন্টের অটোমেশন এবং বার্নডাউন চার্ট আকারে বিশ্লেষণ সমর্থন করে। Projects দুটি মোডে উপলব্ধ: Table (টেবিল ভিউ) এবং Board (কানবান বোর্ড)।
রিলিজ ম্যানেজমেন্টের জন্য, GitHub Milestones সরবরাহ করে — একটি সাধারণ লক্ষ্য নিয়ে Issues এবং PR-এর গ্রুপ যার সময়সীমা থাকে। প্রতিটি মাইলস্টোন অগ্রগতি দেখায়: কতগুলি টাস্ক খোলা আছে, কতগুলি বন্ধ আছে এবং সময়সীমা পূরণ হচ্ছে কিনা। মাইলস্টোন Releases-এর সাথে সংহত হয় — রিলিজ প্রকাশ করার সময়, আপনি এটি একটি মাইলস্টোনের সাথে লিংক করতে পারেন এবং বন্ধ Issues-এর ভিত্তিতে স্বয়ংক্রিয়ভাবে CHANGELOG তৈরি করতে পারেন।
GitHub Pages হল স্ট্যাটিক সাইটের জন্য বিনামূল্যে হোস্টিং যা স্বয়ংক্রিয়ভাবে https://username.github.io/repository-এ রিপোজিটরি বিষয়বস্তু প্রকাশ করে। Pages HTML, CSS, JavaScript এবং স্ট্যাটিক জেনারেটর: Jekyll (অন্তর্নির্মিত), Hugo, Next.js (এক্সপোর্ট) এবং MkDocs সমর্থন করে। কনফিগারেশনে প্রকাশের জন্য ব্রাঞ্চ এবং ডিরেক্টরি নির্বাচন, পাশাপাশি কাস্টম ডোমেন সমর্থন অন্তর্ভুক্ত।
টেকনিক্যাল ডকুমেন্টেশনের জন্য, GitHub Wiki সরবরাহ করে — একটি অন্তর্নির্মিত উইকি সিস্টেম যা Git রিপোজিটরি হিসাবেও সংরক্ষিত হয়। Wiki Markdown সমর্থন করে এবং ওয়েব ইন্টারফেসের মাধ্যমে এবং স্থানীয়ভাবে wiki রিপোজিটরিতে push-এর মাধ্যমে পৃষ্ঠা সম্পাদনার অনুমতি দেয়। প্রতিটি Wiki পৃষ্ঠার নিজস্ব পরিবর্তন ইতিহাস থাকে, যা API, আর্কিটেকচার এবং প্রজেক্ট প্রক্রিয়া ডকুমেন্টেশনের জন্য সুবিধাজনক।
GitHub Pages + Jekyll-এর সংমিশ্রণ ডকুমেন্টেশন সাইটের জন্য একটি জনপ্রিয় সমাধান। Jekyll স্বয়ংক্রিয়ভাবে Markdown ফাইলগুলিকে স্ট্যাটিক HTML পৃষ্ঠায় রূপান্তর করে, থিম, নেভিগেশন এবং অনুসন্ধান সমর্থন করে। উদাহরণস্বরূপ, Android Developers ডকুমেন্টেশন পূর্বে GitHub Pages-এ Jekyll ব্যবহার করত, এবং এখন একটি অভ্যন্তরীণ প্ল্যাটফর্ম ব্যবহার করে, কিন্তু হাজার হাজার ওপেন-সোর্স প্রজেক্ট তাদের সাইটের জন্য এই সংমিশ্রণ ব্যবহার চালিয়ে যাচ্ছে।
GitHub CLI (gh) আপনাকে কমান্ড লাইনের মাধ্যমে সমস্ত প্ল্যাটফর্ম অপারেশন করতে দেয়: রিপোজিটরি তৈরি, Issues পরিচালনা, Pull Requests দেখা এবং অনুমোদন, Actions চালানো। কমান্ড gh repo create my-project --public একটি দূরবর্তী রিপোজিটরি তৈরি করে এবং এটি স্থানীয়টির সাথে লিংক করে, যখন gh pr create বর্তমান ব্রাঞ্চ থেকে একটি Pull Request তৈরি করে। CLI সেই ডেভেলপারদের কাজের গতি বাড়ায় যারা ওয়েব ইন্টারফেসের চেয়ে টার্মিনাল পছন্দ করেন।
GitHub REST API এবং GraphQL API সমস্ত প্ল্যাটফর্ম বৈশিষ্ট্যে প্রোগ্রামেটিক অ্যাক্সেস সরবরাহ করে: Issues তৈরি, ব্যবহারকারী পরিচালনা, পরিসংখ্যান প্রাপ্তি এবং Actions পরিচালনা। GraphQL API জটিল ক্যোয়ারির জন্য পছন্দনীয় কারণ এটি একটি অনুরোধে শুধুমাত্র প্রয়োজনীয় ফিল্ড প্রাপ্তির অনুমতি দেয়। REST API-র রেট লিমিট প্রমাণিত ব্যবহারকারীদের জন্য প্রতি ঘন্টায় 5000 অনুরোধ। API ব্যাপকভাবে GitHub-কে বাহ্যিক CI সিস্টেম এবং অভ্যন্তরীণ DevOps টুলের সাথে সংহত করতে ব্যবহৃত হয়।
GitHub Gist সম্পূর্ণ রিপোজিটরি তৈরি না করে কোড স্নিপেট প্রকাশের একটি সার্ভিস। Gist সিনট্যাক্স হাইলাইটিং, বাহ্যিক সাইটে এম্বেডিং এবং সংস্করণ ইতিহাস সমর্থন করে। প্রতিটি Gist পাবলিক (অনুসন্ধানে দৃশ্যমান) বা সিক্রেট (শুধুমাত্র লিংকের মাধ্যমে অ্যাক্সেসযোগ্য) হতে পারে। Gist টিম চিঠিপত্রে কনফিগারেশন, লগ এবং কোড উদাহরণ দ্রুত শেয়ার করার জন্য এবং ডেভেলপারদের জন্য Pastebin-এর বিকল্প হিসাবে ব্যবহৃত হয়।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
GitHub উন্মুক্ত সম্প্রদায় এবং সামাজিক বৈশিষ্ট্যগুলিতে (forks, তারা) ফোকাস করে। GitLab আরও শক্তিশালী অন্তর্নির্মিত CI/CD এবং Actions মিনিটের সীমা ছাড়া স্ব-পরিচালিত হোস্টিং অফার করে।
GitHub Team-এর খরচ $4 প্রতি ব্যবহারকারী প্রতি মাসে এবং এটি সীমাহীন প্রাইভেট রিপোজিটরি, ব্রাঞ্চ সুরক্ষা এবং Actions (3000 মিনিট) সরবরাহ করে। বিনামূল্যের প্ল্যান ছোট ওপেন-সোর্স প্রজেক্টের জন্য উপযুক্ত।
রিপোজিটরি তৈরি করার সময়, Public-এর পরিবর্তে Private নির্বাচন করুন। প্রাইভেট রিপোজিটরিতে, কোড শুধুমাত্র আমন্ত্রিত সহযোগীদের কাছে দৃশ্যমান। বিনামূল্যের প্ল্যানে, প্রাইভেট রিপোজিটরি সর্বোচ্চ 3 জন সহযোগীর সীমা সহ উপলব্ধ।
GitHub Copilot হল OpenAI Codex-ভিত্তিক একটি AI সহায়ক যা রিয়েল-টাইম কোড অটোকমপ্লিশন সরবরাহ করে। এটি VS Code, JetBrains এবং Neovim-এ কাজ করে, সমস্ত জনপ্রিয় প্রোগ্রামিং ভাষা সমর্থন করে।
Settings → Danger Zone → Delete this repository-এ যান। মুছে ফেলা অপরিবর্তনীয় — সমস্ত কমিট, Issues এবং Wiki পুনরুদ্ধারের সম্ভাবনা ছাড়াই মুছে যাবে। আগে থেকে ব্যাকআপ নেওয়া নিশ্চিত করুন।
সারাংশ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন