گائیڈز

GitHub کیا ہے؟ غیر ڈویلپرز کے لیے ورژن کنٹرول

GitHub ایک ویب سائٹ ہے جو سافٹ ویئر پروجیکٹس کا کوڈ اس کی مکمل تاریخ کے ساتھ محفوظ رکھتی ہے، تاکہ آپ ہر تبدیلی دیکھ سکیں، غلطیاں واپس لے سکیں اور اسی پروجیکٹ پر دوسرے لوگوں کے ساتھ کام کر سکیں۔ یہ Git پر بنی ہے، جو ایک مفت سافٹ ویئر ہے اور وقت کے ساتھ پروجیکٹ کی فائلوں کے snapshots ریکارڈ کرتا ہے۔ تاریخ کو Git سنبھالتا ہے؛ GitHub وہ آن لائن گھر ہے جہاں یہ تاریخ شیئر، بیک اپ اور زیرِ بحث آتی ہے۔

اگر آپ AI کے ساتھ بناتے ہیں تو GitHub بنیادی طور پر دو کاموں کے لیے ہے: کوڈ کی اپنی کاپی رکھنا اس ٹول سے باہر جس میں آپ نے اسے بنایا، اور اسے کسی ڈویلپر کے حوالے کرنا اس فارمیٹ میں جس کے ساتھ وہ پہلے ہی کام کرتا ہے۔

AI کے ساتھ بناتے وقت یہ کیوں اہم ہے

ایک AI ایپ بلڈر تیزی سے بہت سا کوڈ لکھتا اور بدلتا ہے، اور ہر تبدیلی بہتری نہیں ہوتی۔ ورژن کنٹرول وہ طریقہ ہے جس سے آپ اسے محفوظ رکھتے ہیں۔

  • اعتماد کے ساتھ واپس جائیں۔ ہر محفوظ شدہ تبدیلی ایک snapshot ہے۔ اگر AI کچھ توڑ دے تو آپ آخری درست حالت پر واپس جا سکتے ہیں۔
  • ملکیت۔ آپ کے اپنے GitHub اکاؤنٹ میں موجود کوڈ آپ کا رہتا ہے، چاہے آپ ٹول بدل دیں، کسی ٹول کی ادائیگی بند کر دیں یا دوسری رائے لینا چاہیں۔
  • ڈویلپرز کے ساتھ کام۔ تقریباً ہر ڈویلپر روزانہ Git استعمال کرتا ہے۔ ریپوزٹری کے ذریعے وہ دیکھ سکتا ہے کہ AI نے کیا لکھا، اسے ٹھیک کر سکتا ہے اور تبدیلیاں واپس بھیج سکتا ہے۔
  • کہیں اور deploy کرنا۔ بہت سے ہوسٹنگ پلیٹ فارمز سیدھا GitHub ریپوزٹری سے deploy کر سکتے ہیں۔

روزمرہ کی مثال: track changes اور ایک مشترکہ drive

ایک دستاویز کا تصور کریں جس پر track changes چل رہا ہو اور وہ ایک مشترکہ drive میں محفوظ ہو۔

  • Git وہ track changes ہے: ہر تدوین ریکارڈ ہوتی ہے، کس نے کی، کب اور کیوں، اور آپ کسی بھی ورژن پر واپس جا سکتے ہیں۔
  • GitHub وہ مشترکہ drive ہے: دستاویز آن لائن رہتی ہے، دوسرے اس کی کاپی لے سکتے ہیں، اور تبصرہ کرنے اور منظوری دینے کی جگہ ہوتی ہے۔
  • branch ایسا ہے جیسے “draft — new pricing section” نام کی کاپی محفوظ کرنا تاکہ آپ اس ورژن کو چھیڑے بغیر تجربہ کر سکیں جس پر سب انحصار کرتے ہیں۔ اگر تجربہ کامیاب ہو تو آپ اسے واپس merge کر دیتے ہیں۔

دستاویز سے فرق پیمانے کا ہے۔ ایک ایپ سینکڑوں فائلوں پر مشتمل ہوتی ہے، اور Git ان سب کو اکٹھا ٹریک کرتا ہے، اس لیے ایک snapshot پورے پروجیکٹ کی اس وقت کی حالت ہوتا ہے۔

وہ Git اور GitHub کی اصطلاحات جو آپ کو ملیں گی

اصطلاحسادہ مطلب
Repository (repo)مکمل تاریخ کے ساتھ ایک پروجیکٹ فولڈر
Commitتبدیلیوں کا محفوظ شدہ snapshot، ایک مختصر پیغام کے ساتھ
Branchکام کی ایک الگ لائن، تاکہ تجربات مرکزی ورژن کو متاثر نہ کریں
mainمرکزی branch کا عام نام، یعنی وہ ورژن جو لائیو جاتا ہے
Mergeایک branch کی تبدیلیاں دوسری branch میں لانا
Merge conflictدو تبدیلیوں نے ایک ہی سطریں چھوئیں؛ کسی کو فیصلہ کرنا ہوگا کہ کون سی رکھنی ہے
Cloneریپوزٹری کی مکمل کاپی ڈاؤن لوڈ کرنا، تاریخ سمیت
Push / pullاپنے commits GitHub پر بھیجنا / دوسروں کے commits لانا
Pull request (PR)GitHub کا وہ صفحہ جو branch کو merge کرنے کی تجویز دیتا ہے، جہاں لوگ تبدیلیوں کا جائزہ لیتے اور بات کرتے ہیں
ForkGitHub پر کسی دوسرے کی ریپوزٹری کی اپنی کاپی
Issueریپوزٹری کے ساتھ جڑی ایک GitHub to-do یا bug رپورٹ
.gitignoreان فائلوں کی فہرست جو Git کبھی ریکارڈ نہ کرے، جیسے .env کے secrets اور ڈاؤن لوڈ شدہ dependencies
GitHub ActionsGitHub پر چلنے والا automation، مثلاً ہر pull request پر ٹیسٹ

دو نکات کو نمایاں کرنا ضروری ہے۔ پہلا، Git کی تاریخ ڈیزائن کے لحاظ سے مستقل ہوتی ہے: اگر کوئی پاس ورڈ commit ہو کر push ہو جائے تو بعد کے commit میں اسے حذف کرنے سے وہ تاریخ سے نہیں نکلتا۔ دوسرا، commit اتنا ہی مفید ہے جتنا اس کا پیغام۔ “Fix booking double-count when two people book at once” آپ کے بعد کام آتا ہے؛ “update” نہیں آتا۔

ایک عملی مثال: AI سے بنی ایپ ایک فری لانسر کو دینا

آپ نے ایک AI ایپ بلڈر سے کلائنٹ پورٹل بنایا ہے۔ یہ کام کرتا ہے، لیکن آپ چاہتے ہیں کہ ایک فری لانس ڈویلپر آپ کے اکاؤنٹنگ سافٹ ویئر کے ساتھ ایک مشکل integration شامل کرے۔

  1. پروجیکٹ کو ایک نئی نجی GitHub ریپوزٹری سے جوڑیں اور push کریں۔ اب ریپوزٹری میں کوڈ اور اس کی تاریخ موجود ہے۔
  2. دیکھیں کہ اس میں کیا ہے۔ GitHub پر ریپوزٹری کھولیں۔ وہاں کوئی .env فائل نہیں ہونی چاہیے اور کوڈ میں کوئی API key نہیں ہونی چاہیے۔ Secrets آپ کے پلیٹ فارم کی ترتیبات میں رہتے ہیں اور فری لانسر کے ساتھ الگ سے شیئر ہوتے ہیں، اگر ہوں تو — دیکھیں ماحولیاتی متغیرات اور secrets۔
  3. فری لانسر کو صرف اسی ریپوزٹری پر collaborator کے طور پر مدعو کریں۔
  4. وہ ایک branch پر کام کرتا ہے، جیسے accounting-sync، کام کے ساتھ commit کرتا ہے، اور مکمل ہونے پر ایک pull request کھولتا ہے۔
  5. آپ pull request کا جائزہ لیتے ہیں۔ کوڈ پڑھے بغیر بھی آپ وضاحت پڑھ سکتے ہیں، دیکھ سکتے ہیں کہ کون سی فائلیں بدلیں، اور تبصروں میں سوال پوچھ سکتے ہیں۔
  6. مطمئن ہونے پر merge کریں، پھر تبدیلیاں اپنے بلڈر میں pull کریں تاکہ آپ اور AI نئے ورژن سے آگے کام کریں۔

اس پورے عمل میں آپ دیکھ سکتے ہیں کہ کیا بدلا اور ضرورت ہو تو اسے واپس لے سکتے ہیں۔ ورژن کنٹرول کی پوری قدر یہی ایک ورک فلو میں ہے۔ اگر آپ ابھی طے کر رہے ہیں کہ کسی ڈویلپر کو لانا ہے یا نہیں، تو دیکھیں ڈویلپر کو رکھیں یا AI سے بنائیں۔

عام غلطیاں اور غلط فہمیاں

  • “GitHub اور Git ایک ہی چیز ہیں۔” Git، GitHub کے بغیر کام کرتا ہے؛ GitLab اور Bitbucket جیسے متبادل بھی Git ریپوزٹریز ہوسٹ کرتے ہیں۔
  • “GitHub میری ایپ چلائے گا۔” GitHub کوڈ محفوظ کرتا ہے۔ عوام کے لیے ایپ چلانا ویب ہوسٹنگ ہے، جو ایک الگ سروس ہے (اگرچہ کچھ ہوسٹس GitHub سے deploy کرتے ہیں)۔
  • Secrets commit کرنا۔ سب سے نقصان دہ اور سب سے عام غلطی۔ .env فائلوں کے لیے .gitignore استعمال کریں، اور جو key کبھی push ہوئی ہو اسے تبدیل (rotate) کریں۔
  • صرف ایک branch اور کوئی پیغام نہیں۔ اکیلے تجربات کے لیے ٹھیک ہے، لیکن commits کو واضح پیغام دیں اور خطرناک کام کے لیے branches استعمال کریں۔
  • ایک ہی وقت میں دو جگہوں پر ترمیم۔ اگر آپ GitHub اور AI بلڈر دونوں میں کوڈ بدلیں اور درمیان میں pull نہ کریں تو conflicts بنتے ہیں۔ ایک وقت میں ایک جگہ ترمیم کریں اور جگہ بدلنے سے پہلے sync کریں۔
  • یہ سمجھنا کہ private repo ہر چیز کا بیک اپ ہے۔ اس میں کوڈ ہوتا ہے، آپ کے ڈیٹا بیس کا مواد یا اپ لوڈ شدہ فائلیں نہیں۔ ان کے لیے الگ بیک اپ درکار ہے۔

اپنے AI بلڈر سے کیا مانگیں

  • “ایک .gitignore شامل کریں جو .env، dependency فولڈرز اور build آؤٹ پٹ کو خارج کرے۔”
  • “ایک README لکھیں جو بتائے کہ کیسے انسٹال کریں، کون سے environment variables درکار ہیں (صرف نام) اور ایپ کیسے چلائیں۔”
  • “ایک .env.example شامل کریں جس میں ہر variable کا نام ہو اور کوئی حقیقی قدر نہ ہو۔”
  • “ہر تبدیلی کے لیے واضح اور بامعنی commit پیغامات استعمال کریں۔”

یہ چار درخواستیں ایسی ریپوزٹری بناتی ہیں جسے ایک ڈویلپر چند منٹ میں سنبھال لے۔ ایپ کو اپنے سرورز پر منتقل کرنے کے لیے دیکھیں AI سے بنی ایپ کو export اور self-host کیسے کریں، اور حقیقی صارفین سے پہلے اسے مضبوط کرنے کے لیے AI پروٹوٹائپ کو production تک کیسے لے جائیں۔

GitHub اور Mythex

Mythex ہر پلان پر آپ کے لیے تاریخ محفوظ رکھتا ہے: ہر کامیاب agent turn کے بعد یہ ایک checkpoint محفوظ کرتا ہے، جو ایک Git snapshot ہے اور جس پر آپ واپس جا سکتے ہیں۔ Pro پر آپ GitHub کو جوڑ کر اپنی ریپوزٹری کے ساتھ پروجیکٹ کو push یا pull کر سکتے ہیں، یا پورا پروجیکٹ archive کے طور پر ڈاؤن لوڈ کر سکتے ہیں؛ secrets اور انسٹال شدہ dependencies export سے خارج ہوتے ہیں۔ یہاں GitHub کوڈ کو sync کرنے کے لیے ہے، Mythex میں سائن ان کے لیے نہیں۔ دیکھیں GitHub، export اور import docs میں، اور ہر پلان میں کیا شامل ہے اس کے لیے قیمتوں کا صفحہ۔

سوالات

Git اور GitHub میں کیا فرق ہے؟

Git ایک مفت سافٹ ویئر ہے جو کسی بھی کمپیوٹر پر پروجیکٹ کی فائلوں کی تاریخ ریکارڈ کرتا ہے۔ GitHub ایک ویب سائٹ ہے جو Microsoft کی ملکیت ہے۔ یہ Git ریپوزٹریز آن لائن ہوسٹ کرتی ہے اور pull requests، issues اور automation جیسے تعاون کے ٹولز شامل کرتی ہے۔

کیا AI کے ساتھ ایپ بنانے کے لیے مجھے GitHub کی ضرورت ہے؟

نہیں۔ بہت سے AI ایپ بلڈرز تاریخ آپ کے لیے پروڈکٹ کے اندر ہی محفوظ رکھتے ہیں۔ GitHub اس وقت کام آتا ہے جب آپ کوڈ کی اپنی کاپی چاہتے ہیں، کسی ڈویلپر کے ساتھ کام کرنا ہو، یا ایپ کو کہیں اور ہوسٹ کرنے کا ارادہ ہو۔

کیا GitHub مفت ہے؟

GitHub کا ایک مفت پلان ہے جس میں عوامی اور نجی ریپوزٹریز شامل ہیں، اور یہ زیادہ تر افراد اور چھوٹی ٹیموں کے لیے کافی ہے۔ ادا شدہ پلانز میں ٹیم مینجمنٹ اور اضافی فیچرز ملتے ہیں۔ موجودہ تفصیلات کے لیے GitHub کا قیمتوں کا صفحہ دیکھیں۔

کیا میرا کوڈ GitHub پر عوامی ہے؟

صرف اس صورت میں جب آپ ریپوزٹری کو عوامی بنائیں۔ نجی ریپوزٹریز صرف آپ کو اور ان لوگوں کو نظر آتی ہیں جنہیں آپ دعوت دیں۔ نجی ریپوزٹری میں بھی کبھی پاس ورڈ یا API keys commit نہ کریں۔

Mythex · Pricing · AI کے ساتھ کچھ بھی بنائیں · ویب سائٹ اور ایپ ٹیمپلیٹس · Mythex کا موازنہ · AI سے ایپ بنانے کی اصطلاحات · AI سے ایپ بنانے کے مفت ٹولز · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)