GitHub: اس کا جوہر، خصوصیات اور کیسے کام کرتا ہے

مصنف: IT Sectr اشاعت: 2026-05-09 مطالعے کا وقت: 8 منٹ

GitHub Microsoft کی ملکیت، Git ریپوزٹریز کی میزبانی، مشترکہ ترقی اور عمل کی آٹومیشن کے لیے سب سے بڑا ویب پلیٹ فارم ہے۔ یہ نہ صرف ورژن کنٹرول کے ساتھ کوڈ اسٹوریج فراہم کرتا ہے بلکہ پروجیکٹ مینجمنٹ ٹولز کا ایک مکمل سیٹ بھی فراہم کرتا ہے: Issue Tracking، کوڈ ریویو کے ساتھ Pull Request، CI/CD کے لیے Actions اور دستاویزات کے لیے Wiki۔ GitHub، 2024 کے مطابق، پلیٹ فارم پر 100 ملین سے زیادہ ڈویلپرز اور 420 ملین ریپوزٹریز ہیں۔

اہم نکات

  • GitHub کوڈ ریویو، CI/CD اور پروجیکٹ مینجمنٹ ٹولز کے ساتھ Git ریپوزٹریز کے لیے ایک ویب پلیٹ فارم ہے۔
  • Pull Request بحث اور کوڈ ریویو کے ساتھ تبدیلیاں کرنے کا بنیادی طریقہ کار ہے۔
  • GitHub Actions بیرونی CI خدمات کے بغیر بلڈ، ٹیسٹنگ اور ڈیپلائمنٹ کو خودکار کرتا ہے۔
  • Issues اور Projects کاموں کی ٹریکنگ اور سپرنٹ مینجمنٹ کے لیے ایک بلٹ ان سسٹم فراہم کرتے ہیں۔
  • GitHub Pages جامد سائٹس اور دستاویزات کے لیے مفت ہوسٹنگ فراہم کرتا ہے۔

GitHub کیا ہے؟

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 کی اہم خصوصیات

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 شامل ہیں۔ Enterprise ورژن Google، Apple اور Airbnb جیسی کمپنیاں استعمال کرتی ہیں۔

GitHub کی ایک اہم خصوصیت GitHub CLI (gh) ہے، جو آپ کو ویب انٹرفیس استعمال کیے بغیر کمانڈ لائن سے تمام پلیٹ فارم آپریشنز کرنے کی اجازت دیتی ہے۔ gh کے ساتھ، آپ ریپوزٹریز بنا سکتے ہیں، Issues کا نظم کر سکتے ہیں، Pull Requests کا جائزہ لے سکتے ہیں اور براہ راست ٹرمینل سے Actions چلا سکتے ہیں، جو کمانڈ لائن کے عادی ڈویلپرز کے کام کو تیز کرتا ہے۔

خصوصیتمقصددستیابی
ActionsCI/CD اور آٹومیشنمفت 2000 منٹ/ماہ
CodespacesVS Code پر مبنی کلاؤڈ IDEادا شدہ، 60 گھنٹے/ماہ مفت
Packagesپیکیجز اور Docker امیجز کی ہوسٹنگمفت 500 MB
Dependabotخودکار ڈیپینڈنسی اپڈیٹسعوامی ریپو کے لیے مفت
Pagesجامد سائٹ ہوسٹنگمفت

Pull Request اور کوڈ ریویو

Pull Request (PR) GitHub پر کسی پروجیکٹ میں تبدیلیاں کرنے کا بنیادی طریقہ کار ہے۔ ایک ڈویلپر تبدیلیوں کے ساتھ ایک برانچ بناتا ہے، اسے GitHub پر شائع کرتا ہے اور مرکزی برانچ میں ایک انضمام کی درخواست (Pull Request) بھیجتا ہے۔ پروجیکٹ کے دیگر شرکاء برانچوں کے درمیان فرق (diff) دیکھتے ہیں، کوڈ کی مخصوص لائنوں پر تبصرے چھوڑ سکتے ہیں، تبدیلیاں تجویز کر سکتے ہیں اور درخواست کو منظور یا مسترد کر سکتے ہیں۔

GitHub پر کوڈ ریویو کا عمل PRs کے گرد بنایا گیا ہے۔ ہر تبصرہ diff میں ایک مخصوص لائن سے منسلک ہوتا ہے اور تین اقسام کا ہو سکتا ہے: Comment (عام تبصرہ)، Request Changes (تصحیح کی ضرورت ہے) اور Approve (منظوری)۔ تبدیلیاں کرنے کے بعد، مصنف ایک نئی کمٹ کے ساتھ PR کو اپ ڈیٹ کرتا ہے، اور ریویو کا عمل دہرایا جاتا ہے۔ جب تمام اعتراضات حل ہو جاتے ہیں اور PR منظور ہو جاتا ہے، تبدیلیاں ہدف برانچ میں ضم کر دی جاتی ہیں۔

bash
# فیچر برانچ بنانا اور 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 Actions ایک بلٹ ان CI/CD پلیٹ فارم ہے جو آپ کو براہ راست ریپوزٹری میں ورک فلو کو خودکار کرنے کی اجازت دیتا ہے۔ ورک فلو YAML فائلوں میں بیان کیے جاتے ہیں جو .github/workflows/ ڈائریکٹری میں واقع ہوتی ہیں۔ ہر ورک فلو ایک یا زیادہ جابز پر مشتمل ہوتا ہے جو رنرز — Linux، Windows یا macOS والی ورچوئل مشینوں پر چلتے ہیں۔

Actions ایک ایوینٹ پر مبنی ماڈل کو سپورٹ کرتا ہے: ورک فلو push، PR تخلیق، ریلیز اشاعت، شیڈول کے مطابق یا webhook کے ذریعے متحرک ہوتے ہیں۔ یہ آپ کو ڈویلپر کی شمولیت کے بغیر بلڈ، ٹیسٹ چلانے، جامد کوڈ تجزیہ، ایپ اسٹورز میں اشاعت اور سرور پر ڈیپلائمنٹ کو خودکار کرنے کی اجازت دیتا ہے۔ نیچے Android پروجیکٹ کے لیے ورک فلو کی مثال دی گئی ہے:

yaml
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 یا زبان کے ورژن پر بیک وقت عملدرآمد۔

GitHub Projects اور Issues

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 اور Wiki

GitHub Pages جامد سائٹس کے لیے مفت ہوسٹنگ ہے جو خودکار طور پر ریپوزٹری مواد کو https://username.github.io/repository پر شائع کرتی ہے۔ Pages HTML، CSS، JavaScript اور جامد جنریٹرز: Jekyll (بلٹ ان)، Hugo، Next.js (ایکسپورٹ) اور MkDocs کو سپورٹ کرتا ہے۔ کنفیگریشن میں اشاعت کے لیے برانچ اور ڈائریکٹری کا انتخاب، نیز کسٹم ڈومین سپورٹ شامل ہے۔

تکنیکی دستاویزات کے لیے، GitHub Wiki فراہم کرتا ہے — ایک بلٹ ان ویکی سسٹم جو Git ریپوزٹری کے طور پر بھی محفوظ ہوتا ہے۔ Wiki Markdown کو سپورٹ کرتا ہے اور ویب انٹرفیس کے ذریعے اور مقامی طور پر ویکی ریپوزٹری میں push کے ذریعے صفحات میں ترمیم کرنے کی اجازت دیتا ہے۔ ہر Wiki صفحہ کا اپنا تبدیلی کی تاریخ ہوتی ہے، جو API، آرکیٹیکچر اور پروجیکٹ کے عمل کو دستاویز کرنے کے لیے آسان ہے۔

GitHub Pages + Jekyll کا امتزاج دستاویزات کی سائٹس کے لیے ایک مقبول حل ہے۔ Jekyll خودکار طور پر Markdown فائلوں کو جامد HTML صفحات میں تبدیل کرتا ہے، تھیمز، نیویگیشن اور تلاش کو سپورٹ کرتا ہے۔ مثال کے طور پر، Android Developers کی دستاویزات پہلے GitHub Pages پر Jekyll استعمال کرتی تھیں، اور اب ایک داخلی پلیٹ فارم استعمال کرتی ہیں، لیکن ہزاروں اوپن سورس پروجیکٹ اپنی سائٹس کے لیے اس امتزاج کا استعمال جاری رکھے ہوئے ہیں۔

GitHub CLI: براؤزر کے بغیر انتظام

GitHub CLI (gh) آپ کو کمانڈ لائن کے ذریعے تمام پلیٹ فارم آپریشنز کرنے کی اجازت دیتی ہے: ریپوزٹریز بنانا، Issues کا نظم کرنا، Pull Requests دیکھنا اور منظور کرنا، Actions چلانا۔ کمانڈ gh repo create my-project --public ایک ریموٹ ریپوزٹری بناتی ہے اور اسے لوکل سے لنک کرتی ہے، جبکہ gh pr create موجودہ برانچ سے ایک Pull Request بناتی ہے۔ CLI ان ڈویلپرز کے کام کو تیز کرتی ہے جو ویب انٹرفیس پر ٹرمینل کو ترجیح دیتے ہیں۔

آٹومیشن کے لیے GitHub API

GitHub REST API اور GraphQL API پلیٹ فارم کی تمام خصوصیات تک پروگرامیٹک رسائی فراہم کرتے ہیں: Issues بنانا، صارفین کا نظم کرنا، اعدادوشمار حاصل کرنا اور Actions کا نظم کرنا۔ GraphQL API پیچیدہ سوالات کے لیے افضل ہے کیونکہ یہ ایک درخواست میں صرف مطلوبہ فیلڈز حاصل کرنے کی اجازت دیتا ہے۔ REST API کے لیے ریٹ لمٹ تصدیق شدہ صارفین کے لیے 5000 درخواستیں فی گھنٹہ ہے۔ API بڑے پیمانے پر GitHub کو بیرونی CI سسٹمز اور داخلی DevOps ٹولز کے ساتھ مربوط کرنے کے لیے استعمال ہوتا ہے۔

فوری نوٹس کے لیے GitHub Gist

GitHub Gist مکمل ریپوزٹری بنائے بغیر کوڈ کے ٹکڑے شائع کرنے کی ایک سروس ہے۔ Gist سنٹیکس ہائی لائٹنگ، بیرونی سائٹس پر ایمبیڈنگ اور ورژن ہسٹری کو سپورٹ کرتا ہے۔ ہر Gist عوامی (تلاش میں نظر آنے والا) یا خفیہ (صرف لنک کے ذریعے قابل رسائی) ہو سکتا ہے۔ Gist ٹیم کی خط و کتابت میں کنفیگریشنز، لاگز اور کوڈ کی مثالیں فوری طور پر شیئر کرنے کے لیے اور ڈویلپرز کے لیے Pastebin کے متبادل کے طور پر استعمال ہوتا ہے۔

اکثر پوچھے گئے سوالات

GitHub GitLab سے کیسے مختلف ہے؟

GitHub کھلی کمیونٹی اور سماجی خصوصیات (forks، ستارے) پر توجہ مرکوز کرتا ہے۔ GitLab زیادہ طاقتور بلٹ ان CI/CD اور Actions منٹس پر بغیر پابندی کے خود انتظامی ہوسٹنگ پیش کرتا ہے۔

ایک ٹیم کے لیے GitHub کی قیمت کیا ہے؟

GitHub Team کی قیمت $4 فی صارف فی مہینہ ہے اور یہ لامحدود نجی ریپوزٹریز، برانچ پروٹیکشن اور Actions (3000 منٹ) فراہم کرتا ہے۔ مفت منصوبہ چھوٹے اوپن سورس پروجیکٹس کے لیے موزوں ہے۔

نجی ریپوزٹری کیسے بنائیں؟

ریپوزٹری بناتے وقت، Public کے بجائے Private منتخب کریں۔ نجی ریپوزٹریز میں، کوڈ صرف مدعو شراکت داروں کو نظر آتا ہے۔ مفت منصوبے پر، نجی ریپوزٹریز زیادہ سے زیادہ 3 شراکت داروں کی حد کے ساتھ دستیاب ہیں۔

GitHub Copilot کیا ہے؟

GitHub Copilot OpenAI Codex پر مبنی ایک AI اسسٹنٹ ہے جو ریئل ٹائم کوڈ آٹو کمپلیشن فراہم کرتا ہے۔ یہ VS Code، JetBrains اور Neovim میں کام کرتا ہے، تمام مقبول پروگرامنگ زبانوں کو سپورٹ کرتا ہے۔

GitHub پر ریپوزٹری کیسے حذف کریں؟

Settings → Danger Zone → Delete this repository پر جائیں۔ حذف کرنا ناقابل واپسی ہے — تمام کمٹس، Issues اور Wiki بحالی کے امکان کے بغیر حذف ہو جائیں گے۔ پہلے سے بیک اپ رکھنے کو یقینی بنائیں۔

خلاصہ

  • GitHub بلٹ ان CI/CD اور پروجیکٹ مینجمنٹ ٹولز کے ساتھ Git ریپوزٹریز کی میزبانی کا سب سے بڑا پلیٹ فارم ہے۔
  • Pull Request لائن تبصروں، منظوریوں اور برانچ پروٹیکشن کے ساتھ کوڈ ریویو کا عمل فراہم کرتا ہے۔
  • GitHub Actions ریپوزٹری میں YAML کنفیگریشن کے ذریعے بلڈ، ٹیسٹنگ اور ڈیپلائمنٹ کو خودکار کرتا ہے۔
  • Issues اور Projects کسٹم فیلڈز اور کینبان بورڈز کے ساتھ چھوٹی ٹیموں کے لیے Jira اور Trello کی جگہ لے لیتے ہیں۔
  • GitHub Pages اور Wiki دستاویزات اور جامد سائٹس کے لیے مفت ہوسٹنگ فراہم کرتے ہیں۔
  • ایکو سسٹم میں Copilot (AI کوڈنگ)، Codespaces (کلاؤڈ IDE)، Packages اور Dependabot شامل ہیں۔
  • شروع کریں ایک ریپوزٹری اور اپنا پہلا Pull Request بنا کر — یہ ٹیم کی بنیادی ضروریات کو پورا کرے گا۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں