48 KiB
GitHub کا تعارف
GitHub جدید ویب ڈیولپمنٹ کے سب سے اہم پلیٹ فارمز میں سے ایک ہے، جو دنیا بھر کے لاکھوں ڈیولپرز کے لیے تعاون کا مرکز ہے۔ اسے اپنے کوڈ کے لیے کلاؤڈ اسٹوریج اور پروگرامرز کے لیے سوشل نیٹ ورک کا امتزاج سمجھیں – یہ وہ جگہ ہے جہاں ڈیولپرز اپنا کام شیئر کرتے ہیں، پروجیکٹس پر تعاون کرتے ہیں، اور اوپن سورس کمیونٹی میں حصہ ڈالتے ہیں جو انٹرنیٹ کے بڑے حصے کو طاقت فراہم کرتی ہے جسے آپ روزانہ استعمال کرتے ہیں۔
اس سبق میں، آپ دریافت کریں گے کہ GitHub کس طرح ڈیولپرز کے کام کرنے کے طریقے کو تبدیل کرتا ہے۔ آپ اپنے کوڈ میں تبدیلیوں کو ٹریک کرنا، دوسروں کے ساتھ بغیر کسی رکاوٹ کے تعاون کرنا، اور یہاں تک کہ ان پروجیکٹس میں حصہ ڈالنا سیکھیں گے جو لاکھوں لوگ استعمال کرتے ہیں۔ یہ صرف آن لائن کوڈ اسٹور کرنے کے بارے میں نہیں ہے – یہ ڈیولپرز کی عالمی کمیونٹی میں شامل ہونے اور بنیادی ورک فلو سیکھنے کے بارے میں ہے جو ہر پیشہ ور ڈیولپر استعمال کرتا ہے۔
اس سبق کے اختتام تک، آپ کے پاس اپنا GitHub ریپوزٹری ہوگا، Git کے ساتھ کوڈ کی تبدیلیوں کو منظم کرنے کا طریقہ سمجھیں گے، اور اوپن سورس پروجیکٹس میں حصہ ڈالنے کا طریقہ جانیں گے۔ یہ مہارتیں آپ کے ویب ڈیولپمنٹ کے سفر کے دوران دوسرے ڈیولپرز کے ساتھ تعاون کرنے کی بنیاد کے طور پر کام کریں گی۔ آئیے شروع کریں اور تعاوناتی کوڈنگ کی طاقت کو کھولیں!
اسکیچ نوٹ Tomomi Imura کی طرف سے
لیکچر سے پہلے کا کوئز
تعارف
GitHub کی عملی سرگرمیوں میں جانے سے پہلے، آئیے وہ بنیاد قائم کریں جس کی آپ کو کامیابی کے لیے ضرورت ہوگی۔ کلیدی تصورات کو سمجھنا اور یہ یقینی بنانا کہ آپ کا ڈیولپمنٹ ماحول مناسب طریقے سے ترتیب دیا گیا ہے، آپ کے GitHub کے سفر کو بہت آسان بنا دے گا۔
اس سیکشن میں، ہم وہ ضروری معلومات اور ٹولز کا احاطہ کریں گے جو ہر ڈیولپر کو GitHub کے ساتھ کام کرتے وقت درکار ہوتے ہیں۔ اگر کچھ تصورات شروع میں اجنبی لگیں تو پریشان نہ ہوں – ہم آپ کو ہر قدم پر رہنمائی کریں گے اور وضاحت کریں گے کہ یہ ٹولز ویب ڈیولپرز کے لیے اتنے قیمتی کیوں ہیں۔
اس سبق میں، ہم درج ذیل کا احاطہ کریں گے:
- آپ کے کمپیوٹر پر کیے گئے کام کو ٹریک کرنا
- دوسروں کے ساتھ پروجیکٹس پر کام کرنا
- اوپن سورس سافٹ ویئر میں حصہ ڈالنے کا طریقہ
ضروریات
اپنے ڈیولپمنٹ ماحول کو صحیح طریقے سے ترتیب دینا GitHub کے تجربے کو ہموار بنانے کے لیے بہت ضروری ہے۔ اسے پروجیکٹ شروع کرنے سے پہلے اپنے ٹول کٹ کی تیاری کے طور پر سوچیں – صحیح ٹولز کو صحیح طریقے سے ترتیب دینا بعد میں آپ کا وقت اور پریشانی بچائے گا۔
آئیے یہ یقینی بنائیں کہ آپ کے پاس Git اور GitHub کے ساتھ مؤثر طریقے سے تعاون شروع کرنے کے لیے سب کچھ موجود ہے۔
شروع کرنے سے پہلے، آپ کو چیک کرنا ہوگا کہ آیا Git انسٹال ہے۔ ٹرمینل میں ٹائپ کریں:
git --version
اگر Git انسٹال نہیں ہے، Git ڈاؤن لوڈ کریں۔ پھر، اپنے لوکل Git پروفائل کو ٹرمینل میں سیٹ اپ کریں:
💡 پہلی بار سیٹ اپ: یہ کمانڈز Git کو بتاتی ہیں کہ آپ کون ہیں۔ یہ معلومات ہر کمیٹ کے ساتھ منسلک ہوگی جو آپ کرتے ہیں، اس لیے ایک ایسا نام اور ای میل منتخب کریں جسے آپ عوامی طور پر شیئر کرنے میں آرام دہ ہوں۔
git config --global user.name "your-name"
git config --global user.email "your-email"
چیک کرنے کے لیے کہ آیا Git پہلے سے ترتیب دیا گیا ہے، آپ ٹائپ کر سکتے ہیں:
git config --list
آپ کو ایک GitHub اکاؤنٹ، ایک کوڈ ایڈیٹر (جیسے Visual Studio Code)، اور اپنا ٹرمینل (یا: کمانڈ پرامپٹ) کھولنے کی ضرورت ہوگی۔
github.com پر جائیں اور اگر آپ نے پہلے سے اکاؤنٹ نہیں بنایا ہے تو ایک اکاؤنٹ بنائیں، یا لاگ ان کریں اور اپنی پروفائل مکمل کریں۔
💡 جدید مشورہ: آسان تصدیق کے لیے SSH keys سیٹ اپ کرنے پر غور کریں یا GitHub CLI استعمال کریں تاکہ پاس ورڈز کی ضرورت نہ ہو۔
✅ GitHub دنیا میں واحد کوڈ ریپوزٹری نہیں ہے؛ دیگر بھی موجود ہیں، لیکن GitHub سب سے زیادہ مشہور ہے۔
تیاری
آپ کو اپنے لوکل کمپیوٹر (لیپ ٹاپ یا پی سی) پر کوڈ پروجیکٹ کے ساتھ ایک فولڈر اور GitHub پر ایک پبلک ریپوزٹری کی ضرورت ہوگی، جو دوسروں کے پروجیکٹس میں حصہ ڈالنے کے طریقے کے لیے ایک مثال کے طور پر کام کرے گا۔
جدید سیکیورٹی طریقے
سافٹ ویئر ڈیولپمنٹ میں سیکیورٹی صرف اہم نہیں ہے – یہ ضروری ہے۔ جب آپ GitHub کے ساتھ اپنا سفر شروع کرتے ہیں، تو شروع سے محفوظ طریقے قائم کرنا آپ کے کوڈ، آپ کے ساتھیوں، اور ان پروجیکٹس کی حفاظت کرے گا جن میں آپ حصہ ڈالتے ہیں۔
جدید ڈیولپمنٹ ورک فلو ہر قدم پر سیکیورٹی کو ترجیح دیتے ہیں۔ آئیے ان کلیدی سیکیورٹی طریقوں کو دریافت کریں جنہیں ہر ڈیولپر کو GitHub اور Git کے ساتھ کام کرتے وقت جاننا چاہیے۔
GitHub کے ساتھ کام کرتے وقت، سیکیورٹی کے بہترین طریقوں پر عمل کرنا ضروری ہے:
| سیکیورٹی کا شعبہ | بہترین طریقہ | اس کی اہمیت |
|---|---|---|
| تصدیق | SSH keys یا Personal Access Tokens استعمال کریں | پاس ورڈز کم محفوظ ہیں اور ختم کیے جا رہے ہیں |
| دوہری تصدیق | اپنے GitHub اکاؤنٹ پر 2FA فعال کریں | اکاؤنٹ کی اضافی حفاظت فراہم کرتا ہے |
| ریپوزٹری سیکیورٹی | حساس معلومات کبھی بھی کمیٹ نہ کریں | API keys اور پاس ورڈز کو کبھی بھی پبلک ریپوز میں نہیں ہونا چاہیے |
| ڈیپینڈنسی مینجمنٹ | Dependabot کو اپ ڈیٹس کے لیے فعال کریں | آپ کی ڈیپینڈنسیز کو محفوظ اور اپ ڈیٹ رکھتا ہے |
⚠️ اہم سیکیورٹی یاد دہانی: API keys، پاس ورڈز، یا دیگر حساس معلومات کو کسی بھی ریپوزٹری میں کبھی بھی کمیٹ نہ کریں۔ حساس ڈیٹا کی حفاظت کے لیے environment variables اور
.gitignoreفائلز استعمال کریں۔
جدید تصدیق سیٹ اپ:
# Generate SSH key (modern ed25519 algorithm)
ssh-keygen -t ed25519 -C "your_email@example.com"
# Set up Git to use SSH
git remote set-url origin git@github.com:username/repository.git
💡 پرو ٹپ: SSH keys بار بار پاس ورڈز داخل کرنے کی ضرورت کو ختم کر دیتی ہیں اور روایتی تصدیق کے طریقوں سے زیادہ محفوظ ہیں۔
کوڈ مینجمنٹ
اب جب کہ آپ GitHub کی اہمیت کو سمجھ چکے ہیں اور اپنا ماحول سیٹ اپ کر چکے ہیں، آئیے ان عملی مہارتوں میں جائیں جنہیں آپ روزانہ ایک ڈیولپر کے طور پر استعمال کریں گے۔ Git کے ساتھ کوڈ مینجمنٹ آپ کے پروجیکٹ کے ارتقاء کی تفصیلی جریدے کو برقرار رکھنے جیسا ہے – ہر تبدیلی، ہر فیصلہ، اور ہر سنگ میل کو احتیاط سے ٹریک اور محفوظ کیا جاتا ہے۔
Git کو اپنے کوڈنگ ٹائم مشین کے طور پر سوچیں۔ آپ بالکل دیکھ سکتے ہیں کہ کیا بدلا، کب بدلا، اور کیوں بدلا۔ یہ پیچیدہ پروجیکٹس پر کام کرتے وقت یا دوسروں کے ساتھ تعاون کرتے وقت ناقابل یقین حد تک قیمتی ہو جاتا ہے۔
فرض کریں کہ آپ کے پاس لوکل فولڈر میں کچھ کوڈ پروجیکٹ ہے اور آپ git – ورژن کنٹرول سسٹم – کا استعمال کرتے ہوئے اپنی پیشرفت کو ٹریک کرنا چاہتے ہیں۔ کچھ لوگ git استعمال کرنے کو اپنے مستقبل کے خود کے لیے محبت کا خط لکھنے سے تشبیہ دیتے ہیں۔ دنوں، ہفتوں، یا مہینوں بعد اپنے کمیٹ میسیجز کو پڑھتے ہوئے آپ کو یاد آئے گا کہ آپ نے کوئی فیصلہ کیوں کیا، یا کسی تبدیلی کو "واپس" لے سکتے ہیں – بشرطیکہ آپ اچھے "کمیٹ میسیجز" لکھیں۔
کام: ریپوزٹری بنائیں اور کوڈ کمیٹ کریں
🎯 سیکھنے کا مقصد: اس کام کے اختتام تک، آپ نے اپنی پہلی GitHub ریپوزٹری بنائی ہوگی اور اپنا پہلا کمیٹ کیا ہوگا۔ یہ ورژن کنٹرول کی دنیا میں آپ کا داخلہ نقطہ ہے!
ویڈیو دیکھیں
مرحلہ وار ورک فلو:
-
GitHub پر ریپوزٹری بنائیں۔ GitHub.com پر، ریپوزٹریز ٹیب میں، یا نیویگیشن بار کے اوپر دائیں جانب، New بٹن (سبز بٹن) یا + ڈراپ ڈاؤن تلاش کریں اور New repository منتخب کریں۔
- اپنی ریپوزٹری (فولڈر) کو ایک نام دیں
- ایک وضاحت شامل کریں (اختیاری لیکن تجویز کردہ)
- اسے پبلک یا پرائیویٹ بنانے کا انتخاب کریں
- README فائل، .gitignore، اور لائسنس شامل کرنے پر غور کریں
- Create repository منتخب کریں۔
-
اپنے ورکنگ فولڈر پر جائیں۔ اپنے ٹرمینل میں، اس فولڈر (جسے ڈائریکٹری بھی کہا جاتا ہے) پر سوئچ کریں جسے آپ ٹریک کرنا شروع کرنا چاہتے ہیں۔ ٹائپ کریں:
cd [name of your folder]یہ کمانڈ کیا کرتی ہے:
- نیویگیٹ کریں اپنے پروجیکٹ ڈائریکٹری میں جہاں آپ کے کوڈ فائلز موجود ہیں
- تیاری کریں Git initialization اور ٹریکنگ کے لیے ماحول
-
Git ریپوزٹری کو انیشیئلائز کریں۔ اپنے پروجیکٹ میں ٹائپ کریں:
git initمرحلہ وار، یہاں کیا ہو رہا ہے:
- بنائیں ایک چھپی ہوئی
.gitفولڈر جو تمام ورژن کنٹرول معلومات پر مشتمل ہے - تبدیل کریں اپنے عام فولڈر کو ایک Git ریپوزٹری میں جو تبدیلیوں کو ٹریک کر سکتی ہے
- سیٹ اپ کریں اپنے پروجیکٹ میں ورژن کنٹرول کی بنیاد
- بنائیں ایک چھپی ہوئی
-
اسٹیٹس چیک کریں۔ اپنی ریپوزٹری کی اسٹیٹس چیک کرنے کے لیے ٹائپ کریں:
git statusآؤٹ پٹ کو سمجھنا:
آؤٹ پٹ کچھ اس طرح نظر آ سکتا ہے:
Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: file.txt modified: file2.txtاس آؤٹ پٹ کے بارے میں آپ کو کیا جاننے کی ضرورت ہے:
- سرخ متن عام طور پر ان فائلز کو ظاہر کرتا ہے جن میں تبدیلیاں ہیں لیکن وہ کمیٹ کے لیے تیار نہیں ہیں
- سبز متن ان فائلز کو دکھاتا ہے جو اسٹیج کی گئی ہیں اور کمیٹ کے لیے تیار ہیں
- مددگار اشارے فراہم کیے جاتے ہیں کہ آپ اگلے کون سے کمانڈز استعمال کر سکتے ہیں
💡 Git اسٹیٹس کو سمجھنا: یہ کمانڈ آپ کا بہترین دوست ہے! یہ آپ کو بالکل بتاتی ہے کہ Git آپ کے پروجیکٹ میں کیا دیکھتا ہے اور آپ اگلے کون سے اقدامات کر سکتے ہیں۔
git statusکمانڈ آپ کو بتاتی ہے کہ کون سی فائلز ریپوزٹری میں محفوظ کرنے کے لیے تیار ہیں یا ایسی تبدیلیاں ہیں جنہیں آپ برقرار رکھنا چاہتے ہیں۔ -
تمام فائلز کو ٹریکنگ کے لیے شامل کریں (جسے فائلز کو اسٹیج کرنا بھی کہا جاتا ہے):
git add .یہ کمانڈ کیا کرتی ہے:
- اسٹیج کریں تمام ترمیم شدہ اور نئی فائلز کو آپ کے پروجیکٹ ڈائریکٹری میں
- تیاری کریں ان فائلز کو آپ کے اگلے کمیٹ میں شامل کرنے کے لیے
- مارک کریں فائلز کو مستقل اسنیپ شاٹ کے لیے جو ہم اگلے بنائیں گے
git addکمانڈ کے ساتھ.دلیل ظاہر کرتی ہے کہ آپ کی تمام فائلز اور تبدیلیاں ٹریکنگ کے لیے تیار ہیں۔ -
منتخب فائلز کو ٹریکنگ کے لیے شامل کریں (منتخب اسٹیجنگ):
git add [file or folder name]منتخب اسٹیجنگ کب استعمال کریں:
- منظم کریں متعلقہ تبدیلیوں کو الگ الگ کمیٹس میں صاف ستھری ہسٹری کے لیے
- شامل کریں صرف وہ فائلز جو منطقی طور پر ایک ساتھ ہیں
- بنائیں زیادہ معنی خیز کمیٹ میسیجز متعلقہ کام کو گروپ کر کے
💡 پرو ٹپ: منتخب شامل کرنے کا استعمال کریں جب آپ متعلقہ تبدیلیوں کو ایک ساتھ کمیٹ کرنا چاہتے ہیں۔ یہ زیادہ معنی خیز کمیٹ ہسٹری بناتا ہے۔
-
فائلز کو اسٹیج سے ہٹائیں (اگر آپ اپنا ارادہ بدلتے ہیں):
# Unstage all files git reset # Unstage a particular file git reset [file or folder name]اسٹیج سے ہٹانے کو سمجھنا:
- ہٹائیں فائلز کو اسٹیجنگ ایریا سے بغیر اپنی تبدیلیوں کو کھونے کے
- اپنی ترمیمات رکھیں لیکن انہیں اگلے کمیٹ سے خارج کریں
- دوبارہ منظم کریں جو آپ اپنے کمیٹ میں شامل کرنا چاہتے ہیں
-
اپنے کام کو محفوظ کریں (کمیٹ بنانا)۔ اس وقت آپ نے فائلز کو ایک اسٹیجنگ ایریا میں شامل کیا ہے۔ ایک جگہ جہاں Git آپ کی فائلز کو ٹریک کر رہا ہے۔ تبدیلی کو مستقل بنانے کے لیے آپ کو فائلز کو کمیٹ کرنا ہوگا۔ ایسا کرنے کے لیے آپ
git commitکمانڈ کے ساتھ ایک کمیٹ بناتے ہیں۔ ایک کمیٹ آپ کے ریپوزٹری کی ہسٹری میں ایک محفوظ پوائنٹ کی نمائندگی کرتا ہے۔ ایک کمیٹ بنانے کے لیے درج ذیل ٹائپ کریں:git commit -m "first commit"جب آپ کمیٹ کرتے ہیں تو کیا ہوتا ہے:
- بنائیں تمام اسٹیج کی گئی فائلز کا ایک مستقل اسنیپ شاٹ اس وقت
- ریکارڈ کریں کمیٹ میسیج جو بتاتا ہے کہ کون سی تبدیلیاں کی گئیں
- جنریٹ کریں ایک منفرد شناخت کنندہ (ہیش) اس مخصوص تبدیلیوں کے سیٹ کے لیے
- شامل کریں اس اسنیپ شاٹ کو آپ کے پروجیکٹ کی ورژن ہسٹری میں
💡 کمیٹ میسیج کے مشورے: آپ کا پہلا کمیٹ میسیج سادہ ہو سکتا ہے، لیکن مستقبل کے کمیٹس کے لیے، وضاحتی بنیں! اچھے مثالیں: "یوزر لاگ ان فنکشنالٹی شامل کریں" یا "نیویگیشن مینو بگ ٹھیک کریں"۔
یہ آپ کی تمام فائلز کو کمیٹ کرتا ہے، "پہلا کمیٹ" میسیج شامل کرتے ہوئے۔ مستقبل کے کمیٹ میسیجز کے لیے آپ زیادہ وضاحتی بننا چاہیں گے تاکہ یہ ظاہر ہو کہ آپ نے کس قسم کی تبدیلی کی ہے۔
-
اپنے لوکل Git ریپوزٹری کو GitHub کے ساتھ جوڑیں۔ ایک Git ریپوزٹری آپ کے کمپیوٹر پر اچھی ہے لیکن کسی وقت آپ اپنی فائلز کا بیک اپ کہیں رکھنا چاہتے ہیں اور دوسروں کو اپنے ریپوزٹری پر کام کرنے کی دعوت دینا چاہتے ہیں۔ ایک بہترین جگہ ایسا کرنے کے لیے GitHub ہے۔ یاد رکھیں ہم نے پہلے ہی GitHub پر ایک ریپوزٹری بنائی ہے لہذا ہمیں صرف اپنے لوکل Git ریپوزٹری کو GitHub کے ساتھ جوڑنے کی ضرورت ہے۔ کمانڈ
git remote addیہی کرے گی۔ درج ذیل کمانڈ ٹائپ کریں:نوٹ کریں، کمانڈ ٹائپ کرنے سے پہلے اپنے GitHub ریپوزٹری پیج پر جائیں تاکہ ریپوزٹری URL تلاش کریں۔ آپ اسے نیچے دی گئی کمانڈ میں استعمال کریں گے۔
https://github.com/username/repository_name.gitکو اپنے GitHub URL سے تبدیل کریں۔git remote add origin https://github.com/username/repository_name.gitمرحلہ وار، یہاں کیا ہو رہا ہے:
- بنائیں ایک کنکشن جسے "origin" کہا جاتا ہے جو آپ کے GitHub ریپوزٹری کی طرف اشارہ کرتا ہے
- جوڑیں اپنے لوکل Git ریپوزٹری کو GitHub پر موجود ریموٹ ریپوزٹری کے ساتھ
- فعال کریں اپنے لوکل کمیٹس کو GitHub پر بھیجنے اور GitHub سے تبدیلیاں کھینچنے کی صلاحیت
💡 جدید متبادل: آپ GitHub CLI کا استعمال کرتے ہوئے ایک قدم میں اپنی ریپوزٹری بنا اور جوڑ سکتے ہیں:
gh repo create my-repo --public --push --source=.یہ ایک ریموٹ یا کنکشن 💡 نوٹ: اگر آپ کی ڈیفالٹ برانچ کا نام مختلف ہے (جیسے "master")، تو "main" کو اپنی اصل برانچ کے نام سے تبدیل کریں۔ آپ اپنی موجودہ برانچ
git branch --show-currentکے ذریعے چیک کر سکتے ہیں۔ -
مزید تبدیلیاں شامل کریں (روزمرہ کا ورک فلو)۔ اگر آپ مزید تبدیلیاں کرنا چاہتے ہیں اور انہیں GitHub پر بھیجنا چاہتے ہیں، تو آپ کو صرف درج ذیل تین کمانڈز استعمال کرنے کی ضرورت ہوگی:
git add . git commit -m "type your commit message here" git pushمرحلہ وار، یہ ہے آپ کا روزمرہ کا ورک فلو:
- Stage اپنی تبدیل شدہ فائلز کو
git add .کے ذریعے (یا مخصوص فائلز شامل کریں) - Commit اپنی تبدیلیوں کو ایک وضاحتی پیغام کے ساتھ محفوظ کریں جو آپ نے حاصل کیا ہے
- Push GitHub پر اپنی کام کو بیک اپ کریں اور دوسروں کے ساتھ شیئر کریں
💡 ٹپ: آپ
.gitignoreفائل اپنانا چاہیں گے تاکہ وہ فائلز جو آپ ٹریک نہیں کرنا چاہتے، GitHub پر ظاہر نہ ہوں - جیسے وہ نوٹس فائل جو آپ اسی فولڈر میں محفوظ کرتے ہیں لیکن عوامی ریپوزیٹری میں اس کا کوئی مقام نہیں۔ آپ.gitignoreفائلز کے ٹیمپلیٹس .gitignore templates پر یا gitignore.io کے ذریعے بنا سکتے ہیں۔ - Stage اپنی تبدیل شدہ فائلز کو
جدید Git ورک فلو
ان جدید طریقوں کو اپنانے پر غور کریں:
- Conventional Commits: ایک معیاری کمیٹ میسج فارمیٹ استعمال کریں جیسے
feat:,fix:,docs:وغیرہ۔ مزید جانیں conventionalcommits.org پر۔ - Atomic commits: ہر کمیٹ کو ایک منطقی تبدیلی کی نمائندگی کریں۔
- Frequent commits: بڑے، کم کمیٹس کے بجائے اکثر وضاحتی پیغامات کے ساتھ کمیٹ کریں۔
Commit میسجز
ایک بہترین Git کمیٹ سبجیکٹ لائن درج ذیل جملے کو مکمل کرتی ہے: اگر لاگو کیا گیا، تو یہ کمیٹ <آپ کی سبجیکٹ لائن یہاں> کرے گا۔
سبجیکٹ میں imperative، present tense استعمال کریں: "change" نہ کہ "changed" یا "changes"۔
جیسے سبجیکٹ میں، باڈی (اختیاری) میں بھی imperative، present tense استعمال کریں۔ باڈی میں تبدیلی کی وجہ شامل کریں اور اسے پچھلے رویے کے ساتھ موازنہ کریں۔ آپ کیوں کی وضاحت کر رہے ہیں، نہ کہ کیسے۔
✅ GitHub پر کچھ وقت گزاریں۔ کیا آپ واقعی ایک بہترین کمیٹ میسج تلاش کر سکتے ہیں؟ کیا آپ ایک انتہائی مختصر میسج تلاش کر سکتے ہیں؟ آپ کے خیال میں کمیٹ میسج میں کون سی معلومات سب سے زیادہ اہم اور مفید ہیں؟
دوسروں کے ساتھ پروجیکٹس پر کام کرنا
تعاون وہ جگہ ہے جہاں GitHub واقعی چمکتا ہے۔ جبکہ اپنے کوڈ کو منظم کرنا قیمتی ہے، اصل جادو تب ہوتا ہے جب ڈویلپرز مل کر کچھ حیرت انگیز تخلیق کرتے ہیں۔ GitHub اکیلے کوڈنگ کو ایک تعاوناتی سمفنی میں تبدیل کرتا ہے جہاں متعدد ڈویلپرز ایک ساتھ تعاون کر سکتے ہیں بغیر ایک دوسرے کے کام میں مداخلت کیے۔
اس سیکشن میں، آپ سیکھیں گے کہ اپنے پروجیکٹس کو دوسرے ڈویلپرز کے لیے خوش آمدید کیسے بنائیں اور موجودہ پروجیکٹس میں معنی خیز تعاون کیسے کریں۔ یہ تعاون کی مہارتیں وہ ہیں جو شوقیہ کوڈرز کو پیشہ ور ڈویلپرز سے الگ کرتی ہیں۔
ویڈیو دیکھیں
GitHub پر چیزیں رکھنے کی بنیادی وجہ دوسرے ڈویلپرز کے ساتھ تعاون ممکن بنانا تھا۔
اپنے ریپوزیٹری میں، Insights > Community پر جائیں تاکہ دیکھ سکیں کہ آپ کا پروجیکٹ تجویز کردہ کمیونٹی معیارات کے ساتھ کیسے موازنہ کرتا ہے۔
🎯 اپنے ریپوزیٹری کو پروفیشنل بنانا: ایک اچھی طرح سے دستاویزی ریپوزیٹری زیادہ تعاون کنندگان کو اپنی طرف متوجہ کرتی ہے اور ظاہر کرتی ہے کہ آپ کوڈ کے معیار کی پرواہ کرتے ہیں۔
ضروری ریپوزیٹری عناصر:
| عنصر | مقصد | اہمیت کیوں ہے |
|---|---|---|
| تفصیل | آپ کے پروجیکٹ کا مختصر خلاصہ | لوگوں کو ایک نظر میں سمجھنے میں مدد دیتا ہے کہ آپ کا پروجیکٹ کیا کرتا ہے |
| README | پروجیکٹ کی تفصیلی دستاویزات | پہلی چیز جو لوگ پڑھتے ہیں - اسے اہم بنائیں! |
| Contributing Guidelines | تعاون کنندگان کے لیے ہدایات | ظاہر کرتا ہے کہ آپ تعاون کا خیر مقدم کرتے ہیں اور واضح توقعات قائم کرتے ہیں |
| Code of Conduct | کمیونٹی کے رویے کے معیارات | تمام تعاون کنندگان کے لیے خوش آمدید ماحول پیدا کرتا ہے |
| License | استعمال کی اجازتیں | وضاحت کرتا ہے کہ دوسرے آپ کے کوڈ کو قانونی طور پر کیسے استعمال کر سکتے ہیں |
| Security Policy | کمزوری رپورٹنگ کا عمل | ظاہر کرتا ہے کہ آپ سیکیورٹی کو سنجیدگی سے لیتے ہیں |
💡 پرو ٹپ: GitHub ان تمام فائلز کے لیے ٹیمپلیٹس فراہم کرتا ہے۔ جب نیا ریپوزیٹری بناتے ہیں، تو ان فائلز کو خودکار طور پر بنانے کے لیے چیک باکسز کو منتخب کریں۔
ایکسپلور کرنے کے لیے جدید GitHub فیچرز:
🤖 آٹومیشن اور CI/CD:
- GitHub Actions خودکار ٹیسٹنگ اور ڈیپلائمنٹ کے لیے
- Dependabot خودکار ڈیپینڈنسی اپڈیٹس کے لیے
💬 کمیونٹی اور پروجیکٹ مینجمنٹ:
- GitHub Discussions کمیونٹی گفتگو کے لیے جو مسائل سے آگے بڑھتی ہیں
- GitHub Projects کانبان اسٹائل پروجیکٹ مینجمنٹ کے لیے
- Branch protection rules کوڈ کے معیار کے معیارات نافذ کرنے کے لیے
یہ تمام وسائل نئے ٹیم ممبرز کو شامل کرنے میں فائدہ مند ہوں گے۔ اور یہ وہ چیزیں ہیں جنہیں نئے تعاون کنندگان عام طور پر آپ کے کوڈ کو دیکھنے سے پہلے دیکھتے ہیں تاکہ معلوم کریں کہ آیا آپ کا پروجیکٹ ان کے وقت کے قابل ہے۔
✅ README فائلز، حالانکہ انہیں تیار کرنے میں وقت لگتا ہے، اکثر مصروف مینٹینرز کے ذریعہ نظر انداز کی جاتی ہیں۔ کیا آپ کسی خاص طور پر وضاحتی مثال تلاش کر سکتے ہیں؟ نوٹ کریں: کچھ اچھے README بنانے میں مدد کرنے والے ٹولز ہیں جنہیں آپ آزما سکتے ہیں۔
ٹاسک: کچھ کوڈ مرج کریں
تعاون کی دستاویزات لوگوں کو پروجیکٹ میں تعاون کرنے میں مدد دیتی ہیں۔ یہ وضاحت کرتی ہیں کہ آپ کس قسم کے تعاون کی تلاش کر رہے ہیں اور عمل کیسے کام کرتا ہے۔ تعاون کنندگان کو آپ کے GitHub ریپوزیٹری میں تعاون کرنے کے قابل ہونے کے لیے کئی مراحل سے گزرنا ہوگا:
- اپنے ریپوزیٹری کو فورک کرنا۔ آپ شاید چاہیں گے کہ لوگ آپ کے پروجیکٹ کو فورک کریں۔ فورک کرنے کا مطلب ہے کہ آپ کے ریپوزیٹری کی ایک نقل ان کے GitHub پروفائل پر بنانا۔
- کلون کریں۔ وہاں سے وہ پروجیکٹ کو اپنی لوکل مشین پر کلون کریں گے۔
- برانچ بنائیں۔ آپ چاہیں گے کہ وہ اپنے کام کے لیے ایک برانچ بنائیں۔
- اپنی تبدیلی کو ایک علاقے پر مرکوز کریں۔ تعاون کنندگان سے کہیں کہ وہ اپنی تبدیلیوں کو ایک وقت میں ایک چیز پر مرکوز کریں - اس طرح ان کے کام کو مرج کرنے کے امکانات زیادہ ہوں گے۔ تصور کریں کہ وہ ایک بگ فکس لکھتے ہیں، ایک نئی فیچر شامل کرتے ہیں، اور کئی ٹیسٹس کو اپڈیٹ کرتے ہیں - اگر آپ ان میں سے 3 میں سے 2 یا 1 کو نافذ کرنا چاہتے ہیں یا کر سکتے ہیں تو کیا ہوگا؟
✅ ایک ایسی صورتحال کا تصور کریں جہاں برانچز خاص طور پر اچھا کوڈ لکھنے اور بھیجنے کے لیے اہم ہوں۔ آپ کون سے استعمال کے کیسز کے بارے میں سوچ سکتے ہیں؟
نوٹ، وہ تبدیلی بنیں جو آپ دنیا میں دیکھنا چاہتے ہیں، اور اپنے کام کے لیے برانچز بنائیں۔ جو بھی کمیٹس آپ کریں گے وہ اس برانچ پر ہوں گے جس پر آپ "چیک آؤٹ" ہیں۔
git statusاستعمال کریں تاکہ دیکھ سکیں کہ وہ کون سی برانچ ہے۔
آئیے ایک تعاون کنندہ ورک فلو کے ذریعے چلتے ہیں۔ فرض کریں کہ تعاون کنندہ نے پہلے ہی ریپوزیٹری کو فورک اور کلون کیا ہے تاکہ ان کے پاس ایک تیار Git ریپوزیٹری ہو جس پر وہ اپنی لوکل مشین پر کام کر سکیں:
-
برانچ بنائیں۔ کمانڈ
git branchاستعمال کریں تاکہ ایک برانچ بنائیں جو وہ تبدیلیاں رکھے گی جو وہ تعاون کرنا چاہتے ہیں:git branch [branch-name]💡 جدید طریقہ: آپ ایک کمانڈ میں نئی برانچ بنا سکتے ہیں اور اس پر سوئچ کر سکتے ہیں:
git switch -c [branch-name] -
کام کرنے والی برانچ پر سوئچ کریں۔ مخصوص برانچ پر سوئچ کریں اور
git switchکے ذریعے ورکنگ ڈائریکٹری کو اپڈیٹ کریں:git switch [branch-name]💡 جدید نوٹ: برانچز تبدیل کرنے کے لیے
git switchgit checkoutکا جدید متبادل ہے۔ یہ زیادہ واضح اور ابتدائی افراد کے لیے محفوظ ہے۔ -
کام کریں۔ اس مرحلے پر آپ اپنی تبدیلیاں شامل کرنا چاہتے ہیں۔ یہ نہ بھولیں کہ Git کو اس کے بارے میں درج ذیل کمانڈز کے ذریعے بتائیں:
git add . git commit -m "my changes"⚠️ کمیٹ میسج کا معیار: یقینی بنائیں کہ آپ اپنے کمیٹ کو اچھا نام دیں، اپنے لیے اور اس ریپوزیٹری کے مینٹینر کے لیے جس پر آپ مدد کر رہے ہیں۔ آپ نے کیا تبدیل کیا ہے اس کے بارے میں مخصوص رہیں!
-
اپنے کام کو
mainبرانچ کے ساتھ ملائیں۔ کسی وقت آپ کام مکمل کر لیتے ہیں اور آپ اپنا کامmainبرانچ کے ساتھ ملانا چاہتے ہیں۔ اس دورانmainبرانچ میں تبدیلیاں ہو سکتی ہیں، اس لیے یقینی بنائیں کہ آپ پہلے درج ذیل کمانڈز کے ذریعے اسے تازہ ترین اپڈیٹ کریں:git switch main git pullاس مرحلے پر آپ یہ یقینی بنانا چاہتے ہیں کہ کوئی تنازعات، ایسی صورتحال جہاں Git آسانی سے تبدیلیوں کو ملانے میں ناکام ہو، آپ کی ورکنگ برانچ میں ہوں۔ اس لیے درج ذیل کمانڈز چلائیں:
git switch [branch_name] git merge mainکمانڈ
git merge mainآپ کی برانچ میںmainسے تمام تبدیلیاں لے آئے گی۔ امید ہے کہ آپ بس جاری رکھ سکتے ہیں۔ اگر نہیں، تو VS Code آپ کو بتائے گا کہ Git کہاں کنفیوز ہے اور آپ متاثرہ فائلز کو تبدیل کر کے بتا سکتے ہیں کہ کون سا مواد زیادہ درست ہے۔💡 جدید متبادل: ایک صاف ہسٹری کے لیے
git rebaseاستعمال کرنے پر غور کریں:git rebase mainیہ آپ کے کمیٹس کو تازہ ترین main برانچ کے اوپر دوبارہ چلاتا ہے، ایک لکیری ہسٹری بناتا ہے۔
-
اپنا کام GitHub پر بھیجیں۔ اپنا کام GitHub پر بھیجنے کا مطلب دو چیزیں ہیں۔ اپنی برانچ کو اپنے ریپوزیٹری پر پش کریں اور پھر ایک PR، Pull Request کھولیں۔
git push --set-upstream origin [branch-name]اوپر دی گئی کمانڈ آپ کے فورک شدہ ریپوزیٹری پر برانچ بناتی ہے۔
-
PR کھولیں۔ اگلا، آپ ایک PR کھولنا چاہتے ہیں۔ آپ یہ GitHub پر فورک شدہ ریپوزیٹری پر جا کر کرتے ہیں۔ آپ کو GitHub پر ایک اشارہ نظر آئے گا جہاں وہ پوچھتا ہے کہ آیا آپ ایک نیا PR بنانا چاہتے ہیں، آپ اس پر کلک کرتے ہیں اور آپ کو ایک انٹرفیس پر لے جایا جاتا ہے جہاں آپ کمیٹ میسج کا عنوان تبدیل کر سکتے ہیں، اسے ایک زیادہ موزوں وضاحت دے سکتے ہیں۔ اب وہ ریپوزیٹری مینٹینر جسے آپ نے فورک کیا تھا، اس PR کو دیکھے گا اور امید ہے کہ وہ اس کی تعریف کرے گا اور آپ کے PR کو مرج کرے گا۔ آپ اب ایک تعاون کنندہ ہیں، واہ :)
💡 جدید ٹپ: آپ GitHub CLI استعمال کرتے ہوئے بھی PR بنا سکتے ہیں:
gh pr create --title "Your PR title" --body "Description of changes"🔧 PRs کے لیے بہترین طریقے:
- متعلقہ مسائل کو "Fixes #123" جیسے کلیدی الفاظ کے ذریعے لنک کریں
- UI تبدیلیوں کے لیے اسکرین شاٹس شامل کریں
- مخصوص ریویورز کی درخواست کریں
- کام جاری رکھنے کے لیے ڈرافٹ PRs استعمال کریں
- ریویو کی درخواست کرنے سے پہلے تمام CI چیکس پاس کریں
-
صفائی کریں۔ یہ اچھا عمل سمجھا جاتا ہے کہ آپ کامیابی سے PR مرج کرنے کے بعد صفائی کریں۔ آپ اپنی لوکل برانچ اور وہ برانچ جسے آپ نے GitHub پر پش کیا تھا، دونوں کو صاف کرنا چاہتے ہیں۔ پہلے درج ذیل کمانڈ کے ساتھ اسے لوکل طور پر ڈیلیٹ کریں:
git branch -d [branch-name]اس کے بعد GitHub پر فورک شدہ ریپوزیٹری کے صفحے پر جائیں اور وہ ریموٹ برانچ ہٹا دیں جسے آپ نے ابھی پش کیا تھا۔
Pull request ایک عجیب اصطلاح لگتی ہے کیونکہ حقیقت میں آپ اپنے پروجیکٹ میں تبدیلیاں پش کرنا چاہتے ہیں۔ لیکن مینٹینر (پروجیکٹ کے مالک) یا کور ٹیم کو آپ کی تبدیلیوں پر غور کرنے کی ضرورت ہے اس سے پہلے کہ وہ پروجیکٹ کی "main" برانچ کے ساتھ مرج کریں، اس لیے آپ واقعی مینٹینر سے تبدیلی کے فیصلے کی درخواست کر رہے ہیں۔
ایک Pull request وہ جگہ ہے جہاں آپ برانچ پر متعارف کرائی گئی تبدیلیوں کا موازنہ اور بحث کر سکتے ہیں، ریویوز، تبصرے، مربوط ٹیسٹس، اور مزید کے ساتھ۔ ایک اچھا Pull request تقریباً وہی اصولوں پر عمل کرتا ہے جو کمیٹ میسج کے لیے ہیں۔ آپ مسئلے کے ٹریکر میں کسی مسئلے کا حوالہ دے سکتے ہیں، جب آپ کا کام مثال کے طور پر کسی مسئلے کو حل کرتا ہے۔ یہ # کے ساتھ کیا جاتا ہے جس کے بعد آپ کے مسئلے کا نمبر ہوتا ہے۔ مثال کے طور پر #97۔
🤞امید ہے کہ تمام چیکس پاس ہو جائیں اور پروجیکٹ کے مالک آپ کی تبدیلیوں کو پروجیکٹ میں مرج کر دیں🤞
اپنی موجودہ لوکل ورکنگ برانچ کو GitHub پر متعلقہ ریموٹ برانچ سے تمام نئے کمیٹس کے ساتھ اپڈیٹ کریں:
git pull
اوپن سورس میں تعاون کیسے کریں
اوپن سورس پروجیکٹس میں تعاون ویب ڈیولپمنٹ کے سب سے زیادہ فائدہ مند تجربات میں سے ایک ہے۔ یہ کمیونٹی کو واپس دینے، تجربہ کار ڈویلپرز سے سیکھنے، اور ہزاروں یا لاکھوں لوگوں کے استعمال کردہ سافٹ ویئر پر حقیقی اثر ڈالنے کا موقع ہے۔
اوپن سورس تعاون کی خوبصورتی یہ ہے کہ ہر کوئی ایک ابتدائی کے طور پر شروع کرتا ہے۔ وہ ڈویلپرز جنہوں نے وہ ٹولز بنائے جن کے ساتھ آپ آج سیکھ رہے ہیں، کبھی وہیں تھے جہاں آپ ابھی ہیں۔ اوپن سورس میں تعاون کر کے، آپ اس مسلسل سیکھنے اور شیئرنگ کے سائیکل کا حصہ بن جاتے ہیں جو ویب ڈیولپمنٹ میں جدت کو آگے بڑھاتا ہے۔
پہلے، آئیے GitHub پر ایک ریپوزیٹری (یا repo) تلاش کریں جو آپ کے لیے دلچسپ ہو اور جس میں آپ تبدیلی کا تعاون کرنا چاہیں۔ آپ اس کے مواد کو اپنی مشین پر کاپی کرنا چاہیں گے۔
✅ 'beginner-friendly' ریپوزیٹریز تلاش کرنے کا ایک اچھا طریقہ یہ ہے کہ tag 'good-first-issue' کے ذریعے تلاش کریں۔
کوڈ کو کاپی کرنے کے کئی طریقے ہیں۔ ایک طریقہ یہ ہے کہ ریپوزیٹری کے مواد کو "کلون" کریں، HTTPS، SSH، یا GitHub CLI (Command Line Interface) کا استعمال کرتے ہوئے۔
اپنے ٹرمینل کو کھولیں اور ریپوزیٹری کو اس طرح کلون کریں:
# Using HTTPS
git clone https://github.com/ProjectURL
# Using SSH (requires SSH key setup)
git clone git@github.com:username/repository.git
# Using GitHub CLI
gh repo clone username/repository
پروجیکٹ پر کام کرنے کے لیے، صحیح فولڈر پر سوئچ کریں:
cd ProjectURL
آپ پورے پروجیکٹ کو اس طرح بھی کھول سکتے ہیں:
- GitHub Codespaces - GitHub کا کلاؤڈ ڈیولپمنٹ ماحول، براؤزر میں VS Code کے ساتھ
- GitHub Desktop - Git آپریشنز کے لیے GUI ایپلیکیشن
- GitHub.dev آپ GitHub پر کسی بھی عوامی ریپوزیٹری کو "ستارہ" دے سکتے ہیں، دیکھ سکتے ہیں اور/یا "فورک" کر سکتے ہیں۔ آپ اپنی ستارہ دی گئی ریپوزیٹریز کو اوپر دائیں ڈراپ ڈاؤن مینو میں دیکھ سکتے ہیں۔ یہ کوڈ کے لیے بک مارکنگ کی طرح ہے۔
پروجیکٹس میں ایک مسئلہ ٹریکر ہوتا ہے، زیادہ تر GitHub پر "Issues" ٹیب میں جب تک کہ دوسری صورت میں ذکر نہ کیا جائے، جہاں لوگ پروجیکٹ سے متعلق مسائل پر بات کرتے ہیں۔ اور "Pull Requests" ٹیب وہ جگہ ہے جہاں لوگ جاری تبدیلیوں پر بات کرتے ہیں اور جائزہ لیتے ہیں۔
پروجیکٹس میں فورمز، میلنگ لسٹس، یا چیٹ چینلز جیسے Slack، Discord یا IRC میں بھی گفتگو ہو سکتی ہے۔
🔧 جدید GitHub خصوصیات:
- GitHub Discussions - کمیونٹی گفتگو کے لیے بلٹ ان فورم
- GitHub Sponsors - مینٹینرز کو مالی طور پر سپورٹ کریں
- Security tab - کمزوری کی رپورٹس اور سیکیورٹی ایڈوائزریز
- Actions tab - خودکار ورک فلو اور CI/CD پائپ لائنز دیکھیں
- Insights tab - شراکت داروں، کمیٹس، اور پروجیکٹ کی صحت کے بارے میں تجزیات
- Projects tab - GitHub کے بلٹ ان پروجیکٹ مینجمنٹ ٹولز
✅ اپنے نئے GitHub ریپوزیٹری کے ارد گرد دیکھیں اور کچھ چیزیں آزمائیں، جیسے سیٹنگز میں ترمیم کرنا، اپنے ریپوزیٹری میں معلومات شامل کرنا، ایک پروجیکٹ بنانا (جیسے Kanban بورڈ)، اور آٹومیشن کے لیے GitHub Actions ترتیب دینا۔ آپ بہت کچھ کر سکتے ہیں!
🚀 چیلنج
ایک دوست کے ساتھ جوڑی بنائیں اور ایک دوسرے کے کوڈ پر کام کریں۔ مل کر ایک پروجیکٹ بنائیں، کوڈ فورک کریں، برانچز بنائیں، اور تبدیلیوں کو ضم کریں۔
لیکچر کے بعد کا کوئز
جائزہ اور خود مطالعہ
اوپن سورس سافٹ ویئر میں تعاون کرنے کے بارے میں مزید پڑھیں۔
مشکل کریں، مشکل کریں، مشکل کریں۔ GitHub کے پاس GitHub Skills کے ذریعے بہترین لرننگ پاتھ دستیاب ہیں:
اضافی جدید وسائل:
- GitHub CLI documentation
- GitHub Codespaces documentation
- GitHub Actions documentation
- Git بہترین طریقے
GitHub Copilot Agent Challenge 🚀
Agent موڈ کا استعمال کرتے ہوئے درج ذیل چیلنج مکمل کریں:
تفصیل: ایک تعاون پر مبنی ویب ڈیولپمنٹ پروجیکٹ بنائیں جو مکمل GitHub ورک فلو کو ظاہر کرے جو آپ نے اس سبق میں سیکھا ہے۔ یہ چیلنج آپ کو ریپوزیٹری تخلیق، تعاون کی خصوصیات، اور جدید Git ورک فلو کو حقیقی دنیا کے منظر نامے میں مشق کرنے میں مدد دے گا۔
پرومپٹ: ایک نیا عوامی GitHub ریپوزیٹری بنائیں ایک سادہ "Web Development Resources" پروجیکٹ کے لیے۔ ریپوزیٹری میں ایک اچھی طرح سے ساختہ README.md فائل شامل ہونی چاہیے جو مفید ویب ڈیولپمنٹ ٹولز اور وسائل کو کیٹیگریز (HTML، CSS، JavaScript وغیرہ) کے ذریعے منظم کرے۔ ریپوزیٹری کو مناسب کمیونٹی معیارات کے ساتھ ترتیب دیں جن میں لائسنس، تعاون کے رہنما اصول، اور ضابطہ اخلاق شامل ہوں۔ کم از کم دو فیچر برانچز بنائیں: ایک CSS وسائل شامل کرنے کے لیے اور دوسری JavaScript وسائل کے لیے۔ ہر برانچ میں وضاحتی کمیٹ پیغامات کے ساتھ کمیٹس کریں، پھر تبدیلیوں کو واپس مین میں ضم کرنے کے لیے Pull Requests بنائیں۔ GitHub کی خصوصیات جیسے Issues، Discussions کو فعال کریں، اور خودکار چیک کے لیے ایک بنیادی GitHub Actions ورک فلو ترتیب دیں۔
اسائنمنٹ
GitHub Skills پر Introduction to GitHub کورس مکمل کریں۔
اختیاری اعلی درجے کے اسائنمنٹس:
- اپنے GitHub اکاؤنٹ کے لیے SSH تصدیق ترتیب دیں
- عام آپریشنز کے لیے GitHub CLI استعمال کرنے کی کوشش کریں
- GitHub Actions ورک فلو کے ساتھ ایک ریپوزیٹری بنائیں
- اس ریپوزیٹری کو ایک codespace میں کھول کر GitHub Codespaces کو دریافت کریں
ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔



