CodeGym /جاوا بلاگ /Random-SD /Git سان شروع ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ
John Squirrels
سطح
San Francisco

Git سان شروع ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ

گروپ ۾ شايع ٿيل

تعارف جي بدران

سلام! اڄ اسان هڪ ورزن ڪنٽرول سسٽم بابت ڳالهائڻ وارا آهيون، يعني Git. گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 1توهان وٽ پروگرامنگ سان ڪو به واسطو ناهي جيڪڏهن توهان نٿا ڄاڻو / سمجھو Git. پر خوبصورتي اها آهي ته توهان کي مسلسل ملازم ٿيڻ لاءِ توهان جي سر ۾ سڀئي گٽ حڪم ۽ خاصيتون رکڻ جي ضرورت ناهي. توهان کي ڄاڻڻ جي ضرورت آهي حڪمن جو هڪ سيٽ جيڪو توهان جي هر شيء کي سمجهڻ ۾ مدد ڪندو جيڪو ٿي رهيو آهي.

Git بنياديات

Git اسان جي ڪوڊ لاء ورهايل ورزن ڪنٽرول سسٽم آهي. اسان کي ان جي ضرورت ڇو آهي؟ ورهايل ٽيمن کي انهن جي ڪم کي منظم ڪرڻ لاء ڪجهه قسم جي سسٽم جي ضرورت آهي. اهو ضروري آهي ته تبديلين کي ٽريڪ ڪرڻ لاء جيڪي وقت سان ٿينديون آهن. اهو آهي، اسان کي قدم قدم ڏسڻ جي ضرورت آهي ته ڪهڙيون فائلون تبديل ڪيون ويون آهن ۽ ڪيئن. اهو خاص طور تي اهم آهي جڏهن توهان تحقيق ڪري رهيا آهيو ته هڪ واحد ڪم جي حوالي سان ڪهڙي تبديلي آئي، تبديلين کي واپس ڪرڻ ممڪن بڻائي.

Git انسٽال ڪرڻ

اچو ته پنهنجي ڪمپيوٽر تي جاوا انسٽال ڪريون.

ونڊوز تي انسٽال ڪرڻ

عام طور تي، توهان کي ڊائون لوڊ ۽ هلائڻ جي ضرورت آهي هڪ exe فائل. هتي سڀ ڪجھ سادو آهي: پهرين گوگل لنڪ تي ڪلڪ ڪريو ، انسٽال ڪريو، ۽ بس. هن کي ڪرڻ لاء، اسان ونڊوز پاران مهيا ڪيل بش ڪنسول استعمال ڪنداسين. ونڊوز تي، توهان کي هلائڻ جي ضرورت آهي Git Bash. ھتي آھي اھو ڪيئن ڏسڻ ۾ اچي ٿو Start Menu ۾: گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 2ھاڻي ھي ھڪڙو ڪمانڊ پرامپٽ آھي جنھن سان توھان ڪم ڪري سگھو ٿا. پراجيڪٽ سان فولڊر ۾ وڃڻ کان پاسو ڪرڻ لاءِ هر ڀيري گٽ اتي کولڻ لاءِ، توهان پروجيڪٽ فولڊر ۾ ڪمانڊ پرامٽ کوليو ساڄي مائوس جي بٽڻ سان جنهن رستي جي اسان کي ضرورت آهي:گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 3

لينڪس تي انسٽال ڪرڻ

عام طور تي Git لينڪس جي تقسيم جو حصو آهي ۽ اڳ ۾ ئي نصب ٿيل آهي، ڇاڪاڻ ته اهو هڪ اوزار آهي جيڪو اصل ۾ لينڪس ڪنييل ڊولپمينٽ لاء لکيو ويو آهي. پر حالتون آهن جڏهن اهو نه آهي. چيڪ ڪرڻ لاء، توهان کي ٽرمينل کولڻ ۽ لکڻ جي ضرورت آهي: git --version. جيڪڏهن توهان هڪ سمجھڻ وارو جواب حاصل ڪيو، ته پوء ڪجھ به نصب ڪرڻ جي ضرورت ناهي. هڪ ٽرمينل کوليو ۽ Ubuntu تي Git انسٽال ڪريو . مان Ubuntu تي ڪم ڪري رهيو آهيان، تنهنڪري مان توهان کي ٻڌائي سگهان ٿو ته ان لاءِ ڇا لکجي: sudo apt-get install git.

macOS تي انسٽال ڪرڻ

هتي، پڻ، توهان کي پهريان چيڪ ڪرڻ جي ضرورت آهي ته ڇا Git اڳ ۾ ئي موجود آهي. جيڪڏهن توهان وٽ نه آهي، ته ان کي حاصل ڪرڻ جو آسان طريقو آهي جديد نسخو ڊائون لوڊ ڪرڻ هتي . جيڪڏهن Xcode انسٽال ٿيل آهي، ته Git ضرور خودڪار طريقي سان نصب ٿي ويندي.

Git سيٽنگون

Git وٽ صارف لاءِ صارف سيٽنگون آھن جيڪي ڪم جمع ڪندا. اهو سمجهه ۾ اچي ٿو ۽ ضروري آهي، ڇاڪاڻ ته گٽ هن معلومات کي ليکڪ جي فيلڊ لاء وٺي ٿو جڏهن هڪ ڪم ڪيو ويندو آهي. ھيٺ ڏنل حڪمن کي هلائڻ سان توھان جي سڀني منصوبن لاءِ يوزرنيم ۽ پاسورڊ سيٽ ڪريو:

git config --global user.name "Ivan Ivanov"
git config --global user.email ivan.ivanov@gmail.com
جيڪڏهن توهان کي ڪنهن خاص منصوبي لاءِ ليکڪ کي تبديل ڪرڻ جي ضرورت آهي، ته توهان "--عالمي" کي ختم ڪري سگهو ٿا. هي اسان کي هيٺيون شيون ڏيندو:

git config user.name "Ivan Ivanov"
git config user.email ivan.ivanov@gmail.com

ٿورڙو نظريو...

موضوع تي غور ڪرڻ لاء، اسان کي توهان کي ڪجهه نوان لفظن ۽ عملن سان متعارف ڪرائڻ گهرجي ...
  • git مخزن
  • انجام ڏيڻ
  • شاخ
  • ملائڻ
  • تڪرار
  • ڇڪڻ
  • ڌڪ
  • ڪجھ فائلن کي ڪيئن نظر انداز ڪجي (.gitignore)
۽ ايئن.

گٽ ۾ اسٽيٽس

گيت ۾ ڪيترائي مجسما آھن جن کي سمجھڻ ۽ ياد ڪرڻ جي ضرورت آھي:
  • اڻ ٽريڪ ٿيل
  • تبديل ٿيل
  • اسٽيج ڪيو
  • انجام

توهان کي اهو ڪيئن سمجهڻ گهرجي؟

اهي حالتون آهن جيڪي اسان جي ڪوڊ تي مشتمل فائلن تي لاڳو ٿين ٿيون:
  1. ھڪڙي فائل جيڪا ٺاھي وئي آھي پر اڃا تائين مخزن ۾ شامل نه ڪئي وئي آھي "غير ٽريڪ ٿيل" حيثيت رکي ٿي.
  2. جڏهن اسان فائلن ۾ تبديليون آڻيون ٿا جيڪي اڳ ۾ ئي Git مخزن ۾ شامل ڪيون ويون آهن، پوء انهن جي حيثيت "تبديل ٿيل" آهي.
  3. انهن فائلن مان جيڪي اسان تبديل ڪيا آهن، اسان انهن کي چونڊيندا آهيون جيڪي اسان کي گهربل آهن، ۽ اهي ڪلاس "اسٽيج" جي حيثيت ۾ تبديل ڪيا ويا آهن.
  4. اسٽيج ٿيل اسٽيٽ ۾ تيار ڪيل فائلن مان هڪ ڪمٽ ٺاهيو ويو آهي ۽ گٽ مخزن ۾ وڃي ٿو. ان کان پوء، "اسٽيج" جي حيثيت سان ڪا به فائلون نه آهن. پر اڃا به ٿي سگهي ٿو فائلون جن جي حيثيت "تبديل" آهي.
ھتي آھي اھو ڇا ڏسڻ ۾ اچي ٿو:گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 4

هڪ عزم ڇا آهي؟

هڪ ڪمٽ بنيادي واقعو آهي جڏهن اهو نسخو ڪنٽرول تي اچي ٿو. اهو سڀ تبديلين تي مشتمل آهي جيڪي ڪمٽ شروع ٿيڻ کان وٺي ڪيون ويون آهن. ڪميٽس هڪٻئي سان ڳنڍيل فهرست وانگر ڳنڍيل آهن. وڌيڪ خاص طور تي: اتي هڪ پهريون ڪم آهي. جڏهن ٻيو ڪم ڪيو ويندو آهي، اهو ڄاڻي ٿو ته پهرين کان پوء ڇا اچي ٿو. ۽ هن طريقي سان، معلومات کي ٽريڪ ڪري سگهجي ٿو. هڪ عزم پڻ پنهنجي معلومات آهي، جنهن کي ميٽاداٽا سڏيو ويندو آهي:
  • ڪمٽ جي منفرد سڃاڻپ ڪندڙ، جيڪو ان کي ڳولڻ لاء استعمال ڪري سگهجي ٿو
  • ڪمٽ جي ليکڪ جو نالو، جنهن ان کي ٺاهيو
  • تاريخ جو عهدو ٺاهيو ويو
  • هڪ تبصرو جيڪو بيان ڪري ٿو ته ڪم دوران ڇا ڪيو ويو
هتي اهو ڪيئن ڏسڻ ۾ اچي ٿو:گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 5

هڪ شاخ ڇا آهي؟

هڪ شاخ ڪجهه ڪمن ڏانهن اشارو آهي. ڇاڪاڻ ته هڪ ڪمٽ ڄاڻي ٿو ته ڪهڙو ڪم ان کان اڳ آهي، جڏهن هڪ شاخ هڪ عزم ڏانهن اشارو ڪري ٿي، اهي سڀئي اڳوڻو ڪمٽ پڻ ان تي لاڳو ٿين ٿا. انهي جي مطابق، اسان اهو چئي سگهون ٿا ته توهان وٽ ڪيتريون ئي شاخون آهن جيئن توهان چاهيو ٿا ته ساڳئي عزم ڏانهن اشارو ڪيو. ڪم شاخن ۾ ٿئي ٿو، تنهن ڪري جڏهن هڪ نئون عزم پيدا ٿئي ٿو، شاخ ان جي پوائنٽر کي وڌيڪ تازي انجام ڏانهن منتقل ڪري ٿو.

Git سان شروع ڪرڻ

توھان ڪم ڪري سگھوٿا ھڪڙي مقامي مخزن سان گڏ اڪيلو ۽ ريموٽ سان. گهربل حڪمن تي عمل ڪرڻ لاء، توھان پنھنجي پاڻ کي مقامي مخزن تائين محدود ڪري سگھو ٿا. اهو صرف .git فولڊر ۾ مقامي طور تي سڀني پروجيڪٽ جي معلومات کي ذخيرو ڪري ٿو. جيڪڏهن اسان ريموٽ مخزن جي باري ۾ ڳالهائي رهيا آهيون، پوء سڀني معلومات کي ريموٽ سرور تي محفوظ ڪيو ويو آهي: صرف پروجيڪٽ جي هڪ ڪاپي مقامي طور تي ذخيرو ٿيل آهي. توهان جي مقامي ڪاپي ۾ ڪيل تبديليون دٻائي سگهجن ٿيون (گٽ پش) ريموٽ مخزن ڏانهن. اسان جي بحث ۾ هتي ۽ هيٺ، اسان ڪم ڪرڻ بابت ڳالهائي رهيا آهيون گيٽ سان ڪنسول ۾. يقينا، توهان استعمال ڪري سگهو ٿا ڪجهه قسم جي GUI تي ٻڌل حل (مثال طور، IntelliJ IDEA)، پر پهريان توهان کي اهو ڄاڻڻ گهرجي ته ڪهڙا حڪم جاري ڪيا پيا وڃن ۽ انهن جو مطلب ڇا آهي.

Git سان مقامي مخزن ۾ ڪم ڪرڻ

اڳيون، مان مشورو ڏيان ٿو ته توهان گڏ ڪريو ۽ انهن سڀني قدمن کي انجام ڏيو جيڪي مون ڪيو جيئن توهان مضمون پڙهيو. اهو توهان جي سمجھ ۽ مواد جي مهارت کي بهتر بڻائيندو. خير، بون اپيٽيٽ! :) هڪ مقامي مخزن ٺاهڻ لاء، توهان کي لکڻ جي ضرورت آهي:

git init
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 6اهو ٺاهيندو .git فولڊر ڪنسول جي موجوده ڊاريڪٽري ۾. .git فولڊر Git مخزن جي باري ۾ سڀ معلومات محفوظ ڪري ٿو. ان کي نه هٽايو؛) اڳيون، فائلون پروجيڪٽ ۾ شامل ڪيون وينديون آهن، ۽ انهن کي "Untracked" حيثيت ڏني ويندي آهي. توهان جي ڪم جي موجوده حيثيت چيڪ ڪرڻ لاء، هي لکو:

git status
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 7اسان ماسٽر برانچ ۾ آهيون، ۽ هتي ئي رهنداسين جيستائين اسان ٻئي برانچ ۾ تبديل نه ڪنداسين. اهو ڏيکاري ٿو ته ڪهڙيون فائلون تبديل ڪيون ويون آهن پر اڃا تائين شامل نه ڪيون ويون آهن "اسٽيج" اسٽيٽس. انهن کي "اسٽيج ٿيل" اسٽيٽس ۾ شامل ڪرڻ لاءِ، توهان کي لکڻ جي ضرورت آهي "گٽ شامل ڪريو". اسان وٽ هتي ڪجھ اختيار آھن، مثال طور:
  • git add -A - سڀني فائلن کي "اسٽيج" اسٽيٽس ۾ شامل ڪريو
  • git شامل ڪريو. - ھن فولڊر مان سڀ فائلون ۽ سڀ ذيلي فولڊر شامل ڪريو. لازمي طور تي، اهو ساڳيو آهي جيئن اڳئين هڪ
  • git add <file name> - هڪ مخصوص فائل شامل ڪري ٿو. هتي توهان ڪجهه نمونن جي مطابق فائلون شامل ڪرڻ لاء باقاعده اظهار استعمال ڪري سگهو ٿا. مثال طور، git add *.java: ان جو مطلب اهو آهي ته توهان صرف جاوا ايڪسٽينشن سان فائلون شامل ڪرڻ چاهيو ٿا.
پهرين ٻه اختيار واضح طور تي سادو آهن. تازيون اضافو سان شيون وڌيڪ دلچسپ ٿيون، تنهنڪري اچو ته لکون:

git add *.txt
اسٽيٽس چيڪ ڪرڻ لاءِ، اسان استعمال ڪريون ٿا اڳ ۾ ئي ڄاڻايل حڪم:

git status
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 8هتي توهان ڏسي سگهو ٿا ته باقاعده اظهار صحيح ڪم ڪيو آهي: test_resource.txt هاڻي "اسٽيج" جي حيثيت رکي ٿو. ۽ آخرڪار، مقامي مخزن سان ڪم ڪرڻ جو آخري مرحلو (هڪ وڌيڪ آهي جڏهن ريموٽ ريپوزٽري سان ڪم ڪري رهيو آهي ؛)) - هڪ نئون عزم ٺاهڻ:

git commit -m "all txt files were added to the project"
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 9اڳيان هڪ شاخ تي عزم جي تاريخ کي ڏسڻ لاءِ هڪ وڏو حڪم آهي. اچو ته ان کي استعمال ڪريون:

git log
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 10هتي توهان ڏسي سگهو ٿا ته اسان پنهنجو پهريون ڪم ٺاهيو آهي ۽ ان ۾ اهو متن شامل آهي جيڪو اسان ڪمانڊ لائن تي مهيا ڪيو آهي. اهو سمجهڻ تمام ضروري آهي ته هي متن بيان ڪرڻ گهرجي جيترو ممڪن طور تي هن ڪم دوران ڪيو ويو هو. اهو اسان کي مستقبل ۾ ڪيترائي ڀيرا مدد ڏيندو. هڪ تحقيقي پڙهندڙ جيڪو اڃا ننڊ ۾ نه آيو آهي شايد اهو سوچي رهيو آهي ته GitTest.java فائل کي ڇا ٿيو آهي. اچو ته هن وقت معلوم ڪريون. هن کي ڪرڻ لاء، اسان استعمال ڪريون ٿا:

git status
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 11جئين توهان ڏسي سگهو ٿا، اهو اڃا تائين "اڻ پڙهيل" آهي ۽ پرن ۾ انتظار ڪري رهيو آهي. پر ڇا جيڪڏهن اسان ان کي منصوبي ۾ شامل ڪرڻ نٿا چاهيون؟ ڪڏهن ڪڏهن ائين ٿيندو آهي. شين کي وڌيڪ دلچسپ بنائڻ لاءِ، اچو ته ھاڻي پنھنجي test_resource.txt فائل کي تبديل ڪرڻ جي ڪوشش ڪريون. اچو ته اتي ڪجھ متن شامل ڪريون ۽ حالت چيڪ ڪريو:

git status
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 12هتي توهان واضح طور تي "غير ٽريڪ ٿيل" ۽ "تبديل ٿيل" اسٽيٽس جي وچ ۾ فرق ڏسي سگهو ٿا. GitTest.java "untracked" آهي، جڏهن ته test_resource.txt "تبديل ٿيل" آهي. هاڻي ته اسان وٽ فائلون تبديل ٿيل حالت ۾ آهن، اسان انهن ۾ ڪيل تبديلين کي جانچي سگهون ٿا. اهو هيٺ ڏنل حڪم استعمال ڪندي ڪري سگهجي ٿو:

git diff
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 13اهو آهي، توهان هتي واضح طور تي ڏسي سگهو ٿا جيڪو مون اسان جي ٽيڪسٽ فائل ۾ شامل ڪيو: هيلو دنيا! اچو ته اسان جي تبديلين کي ٽيڪسٽ فائل ۾ شامل ڪريو ۽ هڪ عزم ٺاهيو:

git add test_resource.txt
git commit -m "added hello word! to test_resource.txt"
سڀني ڪمن کي ڏسڻ لاء، لکو:

git log
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 14جئين توهان ڏسي سگهو ٿا، اسان وٽ هاڻي ٻه واعدو آهن. اسان ساڳئي طريقي سان GitTest.java شامل ڪنداسين. هتي ڪوبه تبصرو ناهي، صرف حڪم:

git add GitTest.java
git commit -m "added GitTest.java"
git status
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 15

.gitignore سان ڪم ڪرڻ

واضح طور تي، اسان صرف ماخذ ڪوڊ اڪيلو رکڻ چاهيون ٿا، ۽ ٻيو ڪجهه به نه، مخزن ۾. پوءِ ٻيو ڇا ٿي سگهي ٿو؟ گهٽ ۾ گهٽ، مرتب ڪيل طبقن ۽/يا فائلون ٺاهيل ڊولپمينٽ ماحوليات پاران. گٽ کي ٻڌائڻ لاءِ انهن کي نظرانداز ڪرڻ لاءِ، اسان کي هڪ خاص فائل ٺاهڻ جي ضرورت آهي. ھي ڪريو: پروجيڪٽ جي روٽ ۾ .gitignore نالي ھڪڙي فائل ٺاھيو. هن فائل ۾ هر لڪير کي نظر انداز ڪرڻ لاء هڪ نمونو پيش ڪري ٿو. هن مثال ۾، .gitignore فائل هن طرح نظر ايندي:

```
*.class
target/
*.iml
.idea/
```
اچو ته هڪ نظر وٺو:
  • پهرين لڪير سڀني فائلن کي نظر انداز ڪرڻ آهي .class ايڪسٽينشن سان
  • ٻئين لڪير کي نظر انداز ڪرڻ آهي "ٽارگٽ" فولڊر ۽ ان ۾ موجود هر شيءِ
  • ٽين لائين .iml ايڪسٽينشن سان سڀني فائلن کي نظرانداز ڪرڻ آهي
  • چوٿين لائن .idea فولڊر کي نظرانداز ڪرڻ آهي
اچو ته هڪ مثال استعمال ڪرڻ جي ڪوشش ڪريو. ڏسڻ لاءِ ته اهو ڪيئن ڪم ڪري ٿو، اچو ته مرتب ڪيل GitTest.class کي شامل ڪريون پروجيڪٽ ۾ ۽ چيڪ ڪريو پروجيڪٽ جي اسٽيٽس:

git status
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 16واضح طور تي، اسان نٿا چاهيون ته ڪنهن به طرح سان گڏ ڪيل طبقي کي منصوبي ۾ شامل ڪيو وڃي (استعمال ڪندي git add -A). هن کي ڪرڻ لاء، هڪ .gitignore فائل ٺاهيو ۽ هر شي کي شامل ڪريو جيڪو اڳ بيان ڪيو ويو آهي: گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 17هاڻي اچو ته هڪ ڪمٽ استعمال ڪريون .gitignore فائل کي شامل ڪرڻ لاءِ پروجيڪٽ ۾:

git add .gitignore
git commit -m "added .gitignore file"
۽ ھاڻي سچ جو لمحو: اسان وٽ ھڪڙو مرتب ڪيل ڪلاس آھي GitTest.class جيڪو ”اڻ ٽريڪ ٿيل“ آھي، جنھن کي اسان گٽ مخزن ۾ شامل ڪرڻ نٿا چاھيو. هاڻي اسان کي ڏسڻ گهرجي .gitignore فائل جا اثر:

git status
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 18ڪامل! .gitignore +1 :)

شاخن وغيره سان ڪم ڪرڻ

قدرتي طور تي، صرف هڪ شاخ ۾ ڪم ڪرڻ اڪيلو ڊولپرز لاء تڪليف آهي، ۽ اهو ناممڪن آهي جڏهن ٽيم تي هڪ کان وڌيڪ ماڻهو آهن. ان ڪري اسان وٽ شاخون آهن. جيئن مون اڳ ۾ چيو آهي، هڪ شاخ صرف ڪم ڪرڻ لاء هڪ متحرڪ اشارو آهي. هن حصي ۾، اسان مختلف شاخن ۾ ڪم ڪرڻ جي ڳولا ڪنداسين: تبديلين کي هڪ شاخ مان ٻي شاخ ۾ ڪيئن ضم ڪجي، ڪهڙا تضاد پيدا ٿي سگهن ٿا، ۽ گهڻو ڪجهه. مخزن ۾ سڀني شاخن جي فهرست ڏسڻ لاءِ ۽ سمجھو ته توھان ڪھڙي ۾ آھيو، توھان کي لکڻ جي ضرورت آھي:

git branch -a
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 19توهان ڏسي سگهو ٿا ته اسان وٽ صرف هڪ ماسٽر برانچ آهي. ان جي سامهون ستاري اشارو ڪري ٿو ته اسان ان ۾ آهيون. رستي ۾، توهان "گٽ اسٽيٽس" ڪمانڊ پڻ استعمال ڪري سگهو ٿا اهو معلوم ڪرڻ لاءِ ته اسان ڪهڙي برانچ ۾ آهيون. پوءِ برانچ ٺاهڻ لاءِ ڪيترائي آپشن آهن (شايد وڌيڪ به هجن - اهي ئي آهن جيڪي آئون استعمال ڪريان ٿو):
  • ھڪڙي نئين شاخ ٺاھيو جنھن جي بنياد تي اسين آھيون (99٪ ڪيسن)
  • ھڪڙي شاخ ٺاھيو ھڪڙي مخصوص عزم جي بنياد تي (ڪيسن جو 1٪)

اچو ته هڪ مخصوص ڪمٽ جي بنياد تي برانچ ٺاهي

اسان ڪمٽ جي منفرد سڃاڻپ ڪندڙ تي ڀروسو ڪنداسين. ان کي ڳولڻ لاء، اسان لکندا آهيون:

git log
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 20مون تبصري سان وابستگي کي اجاگر ڪيو آهي "شامل هيلو ورلڊ..." ان جو منفرد سڃاڻپ ڪندڙ 6c44e53d06228f888f2f454d3cb8c1c976dd73f8 آهي. مان هڪ "ترقي" شاخ ٺاهڻ چاهيان ٿو جيڪا هن ڪمٽ کان شروع ٿئي ٿي. هن کي ڪرڻ لاء، مان لکي ٿو:

git checkout -b development 6c44e53d06228f888f2f454d3cb8c1c976dd73f8
هڪ شاخ ٺاهي وئي آهي صرف پهرين ٻن ڪمن سان ماسٽر برانچ مان. انهي جي تصديق ڪرڻ لاءِ، اسان پهريان پڪ ڪريون ٿا ته ڪنهن مختلف برانچ ڏانهن سوئچ ڪريو ۽ اتي ڪمن جو تعداد ڏسو:

git status
git log
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 21۽ جيئن توقع ڪئي وئي، اسان وٽ ٻه واعدو آهن. رستي ۾، هتي هڪ دلچسپ نقطو آهي: هن برانچ ۾ اڃا تائين ڪوبه .gitignore فائل ناهي، تنهنڪري اسان جي مرتب ڪيل فائل (GitTest.class) هاڻي "untracked" اسٽيٽس سان نمايان ڪئي وئي آهي. ھاڻي اسان پنھنجي شاخن جو ٻيهر جائزو وٺي سگھون ٿا ھن لکڻ سان:

git branch -a
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 22توهان ڏسي سگهو ٿا ته اتي ٻه شاخون آهن: "ماسٽر" ۽ "ترقي". اسان هن وقت ترقي ۾ آهيون.

اچو ته موجوده ھڪڙي جي بنياد تي ھڪڙي شاخ ٺاھيو

برانچ ٺاهڻ جو ٻيو طريقو اهو آهي ته ان کي ٻئي مان ٺاهيو وڃي. مان ماسٽر برانچ جي بنياد تي برانچ ٺاهڻ چاهيان ٿو. پهرين، مون کي ان تي سوئچ ڪرڻ جي ضرورت آهي، ۽ ايندڙ قدم هڪ نئون ٺاهڻ آهي. اچو ته هڪ نظر وٺو:
  • git چيڪ آئوٽ ماسٽر - سوئچ ڪريو ماسٽر برانچ
  • git اسٽيٽس - تصديق ڪريو ته اسان اصل ۾ ماسٽر برانچ ۾ آهيون
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 23هتي توهان ڏسي سگهو ٿا ته اسان ماسٽر برانچ ڏانهن تبديل ڪيو، .gitignore فائل اثر ۾ آهي، ۽ مرتب ڪيل ڪلاس هاڻي "اڻ ٽريڪ ٿيل" جي طور تي نمايان نه ڪئي وئي آهي. ھاڻي اسان ھڪڙي نئين شاخ ٺاھيون ٿا ماسٽر برانچ جي بنياد تي:

git checkout -b feature/update-txt-files
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 24جيڪڏهن توهان کي پڪ ناهي ته ڇا هي برانچ "ماسٽر" وانگر آهي، توهان آساني سان چيڪ ڪري سگهو ٿا "گٽ لاگ" تي عمل ڪندي ۽ سڀني ڪمن کي ڏسي. انهن مان چار هجڻ گهرجي.

جھيڙي جھڳڙي جو حل

ان کان اڳ جو اسان اهو ڳوليون ته تڪرار ڇا آهي، اسان کي هڪ شاخ کي ٻي شاخ ۾ ضم ڪرڻ بابت ڳالهائڻ جي ضرورت آهي. هي تصوير هڪ شاخ کي ٻي شاخ ۾ ضم ڪرڻ جي عمل کي ظاهر ڪري ٿي: گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 25هتي، اسان وٽ هڪ مکيه شاخ آهي. ڪجهه نقطي تي، هڪ ثانوي شاخ ٺاهي وئي آهي مکيه شاخ مان ۽ پوء تبديل ٿيل. هڪ دفعو ڪم ڪيو ويندو، اسان کي هڪ شاخ کي ٻئي ۾ ضم ڪرڻ جي ضرورت آهي. مان مختلف خصوصيتن کي بيان نه ڪندس: هن مضمون ۾، مان صرف هڪ عام فهم پهچائڻ چاهيان ٿو. جيڪڏهن توهان کي تفصيل جي ضرورت آهي، توهان انهن کي پنهنجو پاڻ کي ڳولي سگهو ٿا. اسان جي مثال ۾، اسان خصوصيت/update-txt-files برانچ ٺاهي. جيئن شاخ جي نالي سان ظاهر ڪيو ويو آهي، اسان متن کي اپڊيٽ ڪري رهيا آهيون. گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 26ھاڻي اسان کي ھن ڪم لاءِ ھڪڙو نئون عزم ٺاهڻو پوندو:

git add *.txt 
git commit -m "updated txt files"
git log
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 27هاڻي، جيڪڏهن اسان فيچر/update-txt-files برانچ کي ماسٽر ۾ ضم ڪرڻ چاهيون ٿا، اسان کي ماسٽر ڏانهن وڃڻو پوندو ۽ لکڻو پوندو "git merge feature/update-txt-files":

git checkout master
git merge feature/update-txt-files
git log
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 28نتيجي طور، ماسٽر برانچ ھاڻي اھو ڪمٽ پڻ شامل آھي جيڪو خصوصيت/update-txt-files ۾ شامل ڪيو ويو. هي ڪارڪردگي شامل ڪئي وئي، تنهنڪري توهان هڪ خصوصيت شاخ کي حذف ڪري سگهو ٿا. هن کي ڪرڻ لاء، اسان لکندا آهيون:

git branch -D feature/update-txt-files
هينئر تائين سڀ ڪجهه واضح آهي، ها؟ اچو ته صورتحال کي پيچيده ڪريو: هاڻي چئو ته توهان کي txt فائل ٻيهر تبديل ڪرڻ جي ضرورت آهي. پر هاڻي هي فائل ماسٽر برانچ ۾ به تبديل ٿي ويندي. ٻين لفظن ۾، اهو متوازي ۾ تبديل ٿيندو. گٽ اهو معلوم ڪرڻ جي قابل نه هوندو ته ڇا ڪجي جڏهن اسان چاهيون ٿا اسان جي نئين ڪوڊ کي ماسٽر برانچ ۾ ضم ڪرڻ. اچو ته هلون! اسان ماسٽر جي بنياد تي هڪ نئين شاخ ٺاهينداسين، text_resource.txt ۾ تبديليون آڻينداسين، ۽ هن ڪم لاءِ هڪ عزم ٺاهينداسين:

git checkout -b feature/add-header
... we make changes to the file
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 29

git add *.txt
git commit -m "added header to txt"
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 30ماسٽر برانچ ڏانھن وڃو ۽ ھن ٽيڪسٽ فائل کي ساڳئي لائن تي اپڊيٽ ڪريو جيئن فيچر برانچ ۾:

git checkout master
… we updated test_resource.txt
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 31

git add test_resource.txt
git commit -m "added master header to txt"
۽ ھاڻي سڀ کان وڌيڪ دلچسپ نقطو: اسان کي تبديلين کي ضم ڪرڻ جي ضرورت آھي فيچر/add-header برانچ مان ماسٽر ڏانھن. اسان ماسٽر برانچ ۾ آهيون، تنهنڪري اسان کي صرف لکڻ جي ضرورت آهي:

git merge feature/add-header
پر نتيجو نتيجو ٿيندو test_resource.txt فائل ۾ تڪرار: گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 32هتي اسان ڏسي سگهون ٿا ته گٽ پنهنجو پاڻ تي فيصلو نه ڪري سگهيو ته هن ڪوڊ کي ڪيئن ملائي. اهو اسان کي ٻڌائي ٿو ته اسان کي پهريان تڪرار کي حل ڪرڻ جي ضرورت آهي، ۽ صرف ان کان پوء انجام ڏيو. ٺيڪ. اسان فائل کوليو ٿا تڪرار سان گڏ ٽيڪسٽ ايڊيٽر ۾ ۽ ڏسو: گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 33سمجھڻ لاءِ ته گيٽ هتي ڇا ڪيو، اسان کي ياد رکڻ جي ضرورت آهي ته اسان ڪهڙيون تبديليون ڪيون ۽ ڪٿي، ۽ پوءِ موازنہ ڪريو:
  1. ماسٽر برانچ ۾ هن لڪير تي جيڪي تبديليون هيون اهي "<<<<<<< HEAD" ۽ "=======" جي وچ ۾ مليا آهن.
  2. تبديليون جيڪي فيچر/add-header برانچ ۾ هيون اهي "=======" ۽ ">>>>>> فيچر/add-header" جي وچ ۾ مليون آهن.
اهو ڪيئن آهي Git اسان کي ٻڌائي ٿو ته اهو معلوم نه ٿي سگهيو ته فائل ۾ هن جڳهه تي ضم ڪيئن ڪجي. اهو هن حصي کي مختلف شاخن مان ٻن حصن ۾ ورهائي ٿو ۽ اسان کي پاڻ ۾ ضم ٿيڻ واري تڪرار کي حل ڪرڻ جي دعوت ڏئي ٿو. ڪافي صحيح. مون جرئت سان هر شيء کي هٽائڻ جو فيصلو ڪيو، صرف لفظ "هيڊر" کي ڇڏي ڏيو: گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 34اچو ته تبديلين جي صورتحال کي ڏسو. وضاحت ٿورو مختلف ٿيندو. هڪ "تبديل ٿيل" حيثيت جي بدران، اسان کي "غير ضم" ڪيو ويو آهي. پوء ڇا اسان پنجين حيثيت جو ذڪر ڪري سگهون ٿا؟ مان نه ٿو سمجهان ته اهو ضروري آهي. اچو ته ڏسون:

git status
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 35اسان پاڻ کي قائل ڪري سگهون ٿا ته اهو هڪ خاص، غير معمولي ڪيس آهي. اچو ته جاري رکون:

git add *.txt
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 36توھان محسوس ڪري سگھو ٿا ته وضاحت صرف "گٽ ڪمٽ" لکڻ جو مشورو ڏئي ٿي. اچو ته لکڻ جي ڪوشش ڪريون:

git commit
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 37۽ ائين ئي، اسان اهو ڪيو - اسان ڪنسول ۾ تڪرار حل ڪيو. يقينن، اهو ٿي سگهي ٿو ٿورڙو آسان ترقي واري ماحول ۾. مثال طور، IntelliJ IDEA ۾، سڀڪنھن شيءِ کي چڱيءَ طرح ٺھيل آھي ته توھان ان جي اندر ئي سڀ ضروري ڪارناما انجام ڏئي سگھو ٿا. پر IDEs تمام گهڻيون شيون "هوڊ هيٺ" ڪندا آهن، ۽ اسان اڪثر نٿا سمجهون ته اتي ڇا ٿي رهيو آهي. ۽ جڏهن ڪو سمجھ نه آهي، مسئلا پيدا ٿي سگهن ٿا.

ريموٽ ريپوزٽريز سان ڪم ڪرڻ

آخري قدم اهو آهي ته ڪجهه وڌيڪ حڪمن کي ڳولڻ لاء جيڪي ريموٽ مخزن سان ڪم ڪرڻ جي ضرورت آهي. جيئن مون چيو، ريموٽ ريپوزٽري ڪجهه هنڌ آهي جتي مخزن کي محفوظ ڪيو ويندو آهي ۽ جتان توهان ان کي ڪلون ڪري سگهو ٿا. ڪهڙي قسم جا ريموٽ ريپوزٽريون آهن؟ مثال:
  • GitHub ذخيرو ۽ تعاون جي ترقي لاء سڀ کان وڏو اسٽوريج پليٽ فارم آهي. مون اڳئين مضمونن ۾ اڳ ۾ ئي بيان ڪيو آهي.
    مون تي عمل ڪريو GitHub تي . آئون اڪثر اتي پنهنجو ڪم ڏيکاريان ٿو انهن علائقن ۾ جيڪي آئون ڪم لاءِ پڙهندو آهيان.

  • GitLab هڪ ويب تي ٻڌل اوزار آهي DevOps لائف سائيڪل لاءِ اوپن سورس سان . اهو هڪ Git -based سسٽم آهي ڪوڊ ريپوزٽريز کي منظم ڪرڻ لاءِ پنهنجي وڪي، بگ ٽريڪنگ سسٽم ، CI/CD پائپ لائن، ۽ ٻين ڪمن سان.
    خبرن کان پوء Microsoft خريد ڪيو GitHub، ڪجهه ڊولپرز انهن جي منصوبن کي GitLab ۾ نقل ڪيو.

  • BitBucket هڪ ويب سروس آهي پروجيڪٽ جي ميزباني ۽ تعاون واري ترقي لاءِ مرڪيوريل ۽ گٽ ورزن ڪنٽرول سسٽم تي ٻڌل آهي. هڪ دفعي ان کي GitHub تي وڏو فائدو حاصل هو جنهن ۾ اها مفت نجي ذخيرو پيش ڪري ٿي. گذريل سال، GitHub پڻ متعارف ڪرايو هي صلاحيت هر ڪنهن کي مفت ۾.

  • ۽ ايئن…

جڏهن هڪ ريموٽ مخزن سان ڪم ڪري رهيو آهي، ڪرڻ جو پهريون ڪم توهان جي مقامي مخزن تي منصوبي کي ڪلون ڪرڻ آهي. ان لاءِ، مون اهو پروجيڪٽ ايڪسپورٽ ڪيو جيڪو اسان مقامي طور تي ٺاهيو، ۽ هاڻي هرڪو پنهنجي لاءِ لکي سگهي ٿو ان کي ڪلون ڪري:
git clone https://github.com/romankh3/git-demo
ھاڻي آھي پروجيڪٽ جي مڪمل مقامي ڪاپي. پڪ ڪرڻ لاء ته پروجيڪٽ جي مقامي ڪاپي جديد آهي، توهان کي لکڻ جي ذريعي منصوبي کي ڇڪڻ جي ضرورت آهي:

git pull
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 38اسان جي حالت ۾، ريموٽ مخزن ۾ في الحال ڪجھ به تبديل نه ڪيو ويو آهي، تنهن ڪري جواب آهي: اڳ ۾ ئي تاريخ تائين. پر جيڪڏهن مان ريموٽ ريپوزٽري ۾ ڪا به تبديلي ڪريان ٿو، مقامي هڪ اپڊيٽ ڪيو ويندو آهي جڏهن اسان انهن کي ڇڪيندا آهيون. ۽ نيٺ، آخري حڪم ڊيٽا کي ريموٽ مخزن ڏانهن ڌڪڻ آهي. جڏهن اسان مقامي طور تي ڪجهه ڪيو آهي ۽ ان کي ريموٽ مخزن ڏانهن موڪلڻ چاهيون ٿا، اسان کي پهريان مقامي طور تي هڪ نئون ڪمٽ ٺاهڻ گهرجي. انهي کي ظاهر ڪرڻ لاء، اچو ته اسان جي ٽيڪسٽ فائل ۾ ٻيو ڪجهه شامل ڪريو: گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 39هاڻي اسان لاء ڪجهه عام آهي - اسان هن ڪم لاء هڪ عزم ٺاهيندا آهيون:

git add test_resource.txt
git commit -m "prepared txt for pushing"
هن کي ريموٽ مخزن ڏانهن ڌڪڻ جو حڪم آهي:

git push
گِٽ سان شروعات ڪرڻ: نئين سکندڙن لاءِ هڪ جامع گائيڊ - 40خير، اهو سڀ ڪجهه چوڻ چاهيان ٿو. اوهان جي توجه جي مهرباني. مون تي عمل ڪريو GitHub ، جتي آئون پوسٽ ڪريان ٿو مختلف سٺا مثال پروجيڪٽ سان لاڳاپيل منهنجي ذاتي مطالعي ۽ ڪم سان.

مفيد لنڪ

  • سرڪاري Git دستاويز . مان ان کي هڪ حوالو طور سفارش ڪريان ٿو.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION