
مطلوبہ ان پٹ:
- گٹ کے بارے میں میرا مضمون پڑھیں، اس کی پیروی کریں اور سمجھیں ۔ اس سے یہ یقینی بنانے میں مدد ملے گی کہ سب کچھ ترتیب دیا گیا ہے اور جانے کے لیے تیار ہے۔
- IntelliJ IDEA انسٹال کریں۔
- مکمل مہارت حاصل کرنے کے لیے ذاتی وقت کا ایک گھنٹہ مختص کریں۔
پروجیکٹ کو مقامی طور پر کلون کریں۔
یہاں دو اختیارات ہیں:- اگر آپ کے پاس پہلے سے ہی GitHub اکاؤنٹ ہے اور آپ بعد میں کچھ آگے بڑھانا چاہتے ہیں تو بہتر ہے کہ پروجیکٹ کو فورک کریں اور اپنی کاپی کلون کریں۔
- میرے ذخیرے کو کلون کریں اور پوری چیز کو سرور پر دھکیلنے کی صلاحیت کے بغیر مقامی طور پر سب کچھ کریں۔ سب کے بعد، یہ میرا ذخیرہ ہے :)
-
پروجیکٹ ایڈریس کاپی کریں:
-
IntelliJ IDEA کھولیں اور "ورژن کنٹرول سے حاصل کریں" کو منتخب کریں:
-
پروجیکٹ ایڈریس کو کاپی اور پیسٹ کریں:
-
آپ کو ایک IntelliJ IDEA پروجیکٹ بنانے کے لیے کہا جائے گا۔ پیشکش قبول کریں:
-
چونکہ کوئی تعمیراتی نظام نہیں ہے اور یہ اس مضمون کے دائرہ کار سے باہر ہے، ہم موجودہ ذرائع سے پروجیکٹ بنائیں کو منتخب کرتے ہیں :
-
اس کے بعد آپ کو یہ خوبصورت اسکرین نظر آئے گی:
اب جب کہ ہم نے کلوننگ کا پتہ لگا لیا ہے، آپ اپنے ارد گرد ایک نظر ڈال سکتے ہیں۔
Git UI کے بطور IntelliJ IDEA پر پہلی نظر
کلون شدہ پروجیکٹ پر گہری نظر ڈالیں: آپ ورژن کنٹرول سسٹم کے بارے میں پہلے ہی بہت سی معلومات حاصل کر سکتے ہیں۔ سب سے پہلے، ہمارے پاس نیچے بائیں کونے میں ورژن کنٹرول پین ہے۔ یہاں آپ تمام مقامی تبدیلیاں تلاش کر سکتے ہیں اور کمٹ کی فہرست حاصل کر سکتے ہیں ("گٹ لاگ" کے مشابہ)۔ آئیے لاگ کی بحث کی طرف چلتے ہیں ۔ ایک خاص تصور ہے جو ہمیں یہ سمجھنے میں مدد کرتا ہے کہ ترقی کس طرح آگے بڑھی ہے۔ مثال کے طور پر، آپ دیکھ سکتے ہیں کہ txt کمٹ میں ایک اضافی ہیڈر کے ساتھ ایک نئی برانچ بنائی گئی تھی، جسے پھر ماسٹر برانچ میں ضم کر دیا گیا تھا۔ اگر آپ کسی کمٹ پر کلک کرتے ہیں، تو آپ دائیں کونے میں کمٹ کے بارے میں تمام معلومات دیکھ سکتے ہیں: اس کی تمام تبدیلیاں اور میٹا ڈیٹا۔



مخزن کے ساتھ کام کرنا
مفید ہاٹکیز
مستقبل کے کام کے لیے، آپ کو چند انتہائی مفید ہاٹکیز کو یاد رکھنے کی ضرورت ہے:- CTRL+T - ریموٹ ریپوزٹری (گٹ پل) سے تازہ ترین تبدیلیاں حاصل کریں۔
- CTRL+K - ایک عہد بنائیں / تمام موجودہ تبدیلیاں دیکھیں۔ اس میں غیر ٹریک شدہ اور تبدیل شدہ فائلیں دونوں شامل ہیں (گٹ کے بارے میں میرا مضمون دیکھیں، جو اس کی وضاحت کرتا ہے) (گٹ کمٹ)۔
- CTRL+SHIFT+K - یہ ریموٹ ریپوزٹری میں تبدیلیوں کو آگے بڑھانے کا حکم ہے۔ تمام وعدے جو مقامی طور پر بنائے گئے ہیں اور ابھی تک ریموٹ ریپوزٹری میں نہیں ہیں ان کو دھکیل دیا جائے گا (گٹ پش)۔
- ALT+CTRL+Z — ایک مخصوص فائل میں مقامی ریپوزٹری میں تخلیق کردہ آخری کمٹ کی حالت میں رول بیک تبدیلیاں۔ اگر آپ اوپری بائیں کونے میں پورے پروجیکٹ کو منتخب کرتے ہیں، تو آپ تمام فائلوں میں تبدیلیوں کو واپس کر سکتے ہیں۔

ہم کیا چاہتے ہیں؟
کام مکمل کرنے کے لیے، ہمیں ایک بنیادی منظر نامے پر عبور حاصل کرنے کی ضرورت ہے جو ہر جگہ استعمال ہوتا ہے۔ مقصد یہ ہے کہ ایک علیحدہ برانچ میں نئی فعالیت کو لاگو کیا جائے اور پھر اسے دور دراز کے ذخیرے میں دھکیل دیا جائے (پھر آپ کو مین برانچ میں پل کی درخواست بھی بنانے کی ضرورت ہے، لیکن یہ اس مضمون کے دائرہ کار سے باہر ہے)۔ ایسا کرنے کی کیا ضرورت ہے؟-
مرکزی شاخ میں تمام موجودہ تبدیلیاں حاصل کریں (مثال کے طور پر، "ماسٹر")۔
-
اس مین برانچ سے اپنے کام کے لیے الگ برانچ بنائیں۔
-
نئی فعالیت کو نافذ کریں۔
-
مین برانچ میں جائیں اور چیک کریں کہ کیا ہمارے کام کے دوران کوئی نئی تبدیلیاں ہوئی ہیں۔ اگر نہیں، تو سب کچھ ٹھیک ہے. لیکن اگر تبدیلیاں ہوئیں، تو ہم مندرجہ ذیل کام کرتے ہیں: ورکنگ برانچ میں جائیں اور مین برانچ سے ہماری برانچ میں ہونے والی تبدیلیوں کو ری بیس کریں۔ اگر سب کچھ ٹھیک ہو جائے تو بہت اچھا۔ لیکن یہ مکمل طور پر ممکن ہے کہ تنازعات ہوں گے۔ جیسا کہ ایسا ہوتا ہے، انہیں دور دراز کے ذخیرے میں وقت ضائع کیے بغیر، پہلے ہی حل کیا جا سکتا ہے۔
کیا آپ سوچ رہے ہیں کہ آپ کو ایسا کیوں کرنا چاہیے؟ یہ اچھا آداب ہے اور آپ کی برانچ کو مقامی ذخیرہ میں دھکیلنے کے بعد تنازعات کو ہونے سے روکتا ہے (یقیناً، اس بات کا امکان ہے کہ تنازعات اب بھی ہوں گے، لیکن یہ بہت چھوٹا ہو جاتا ہے )۔
- اپنی تبدیلیوں کو ریموٹ ریپوزٹری میں دھکیلیں۔
ریموٹ سرور سے تبدیلیاں حاصل کریں؟
میں نے ایک نئے عہد کے ساتھ README میں ایک تفصیل شامل کی ہے اور یہ تبدیلیاں حاصل کرنا چاہتا ہوں۔ اگر تبدیلیاں مقامی ریپوزٹری اور دور دراز دونوں میں کی گئی ہیں، تو ہمیں مدعو کیا جاتا ہے کہ وہ انضمام اور بحالی کے درمیان انتخاب کریں۔ ہم ضم کرنے کا انتخاب کرتے ہیں۔ CTRL+T درج کریں :

ماسٹر کی بنیاد پر ایک نئی برانچ بنائیں
یہاں سب کچھ آسان ہے۔-
نیچے دائیں کونے پر جائیں اور Git: master پر کلک کریں ۔ منتخب کریں + نئی برانچ ۔
چیک آؤٹ برانچ کے چیک باکس کو منتخب رہنے دیں اور نئی برانچ کا نام درج کریں۔ میرے لیے یہ readme-improver ہو گا ۔

Git: master پھر Git: readme-improver میں تبدیل ہو جائے گا ۔
آئیے متوازی کام کی نقل کرتے ہیں۔
تنازعات ظاہر ہونے کے لیے، کسی کو انہیں بنانا ہوگا :D میں براؤزر کے ذریعے README کو ایک نئی کمٹ کے ساتھ ایڈٹ کروں گا، اس طرح متوازی کام کی تقلید کروں گا۔ یہ ایسا ہی ہے جیسے کسی نے اسی فائل میں تبدیلیاں کیں جب میں اس پر کام کر رہا تھا۔ نتیجہ تصادم کی صورت میں نکلے گا۔ میں لائن 10 سے لفظ "fully" ہٹا دوں گا۔ہماری فعالیت کو نافذ کریں۔
ہمارا کام README کو تبدیل کرنا اور نئے مضمون میں تفصیل شامل کرنا ہے۔ یعنی Git میں کام IntelliJ IDEA سے ہوتا ہے۔ اسے شامل کریں:


چیک کریں کہ کیا مین برانچ بدل گئی ہے۔
ہم نے اپنا کام مکمل کر لیا۔ یہ کام کرتا ہے. ہم نے ٹیسٹ لکھے۔ سب کچھ ٹھیک ہے. لیکن سرور کو دھکیلنے سے پہلے، ہمیں ابھی بھی یہ چیک کرنے کی ضرورت ہے کہ آیا اس دوران مین برانچ میں کوئی تبدیلیاں ہوئی ہیں۔ ایسا کیسے ہو سکتا تھا؟ کافی آسانی سے: کسی کو آپ کے بعد کوئی کام موصول ہوتا ہے، اور یہ کہ کوئی اسے آپ کے کام کو ختم کرنے سے زیادہ تیزی سے ختم کرتا ہے۔ لہذا ہمیں ماسٹر برانچ میں جانے کی ضرورت ہے۔ ایسا کرنے کے لیے، ہمیں وہی کرنا ہوگا جو نیچے اسکرین شاٹ میں نیچے دائیں کونے میں دکھایا گیا ہے:



- آپ کو قبول کریں — صرف ریڈمی امپروور سے تبدیلیاں قبول کریں۔
- ان کو قبول کریں - صرف ماسٹر کی تبدیلیوں کو قبول کریں۔
- ضم کریں - اپنے آپ کو منتخب کریں کہ آپ کیا رکھنا چاہتے ہیں اور کیا رد کرنا چاہتے ہیں۔

- یہ ریڈمی امپروور کی تبدیلیاں ہیں۔
- ضم شدہ نتیجہ۔ ابھی کے لیے، یہ وہی ہے جو تبدیلیوں سے پہلے موجود تھا۔
- ماسٹر برانچ سے تبدیلیاں۔

ریموٹ سرور میں تبدیلیوں کو پش کریں۔
اگلا مرحلہ ریموٹ سرور میں تبدیلیوں کو آگے بڑھانا اور پل کی درخواست بنانا ہے۔ ایسا کرنے کے لیے، بس دبائیں CTRL+SHIFT+K ۔ پھر ہم حاصل کرتے ہیں:

بونس کا حصہ
سب سے پہلے، میں اس مضمون میں پل کی درخواست کی تخلیق شامل نہیں کرنا چاہتا تھا، لیکن یہ اس کے بغیر مکمل نہیں ہے۔ تو، آئیے ایک GitHub ریپوزٹری پر جائیں (جو یقیناً آپ کا ہے :)) اور ہم دیکھتے ہیں کہ GitHub پہلے ہی جانتا ہے کہ ہم کیا چاہتے ہیں: Compare & pull request

GO TO FULL VERSION