GitHub ڪمانڊ لائن ٽول استعمال ڪرڻ آسان: ”gh“!

جيڪڏهن توهان استعمال ڪري رهيا آهيو GitHub ۽ مون وانگر ڪمانڊ لائن کي ترجيح ڏئي رهيا آهيو هر شي کي بغير ڪنهن پيچيدگين جي GUI تي حاصل ڪرڻ لاءِ ، توهان شايد محسوس ڪيو هوندو ته GitHub ڪيئن استعمال ڪرڻ شروع ڪيو انهن جو نه ئي نئون اوزار جنهن کي ”gh“ سڏيو ويندو آهي. مون ان کي شاٽ ڏيڻ جو فيصلو ڪيو، ڇاڪاڻ ته اهو سڀ کان پوء واعدو ڏٺو. ۽ مون ذاتي طور تي ان کي تمام گهڻو پسند ڪيو - ايترو گهڻو ته مون ان بابت هڪ مضمون ٺاهڻ چاهيو!

جيتوڻيڪ اسان شروع ڪرڻ کان اڳ، مون کي وضاحت ڪرڻ جي ضرورت آهي ڪيترن ئي اصطلاحن کي آئون هن مضمون ۾ استعمال ڪندس.

"GH" جو مطلب آهي "GitHub“. هي اهو آهي جتي اوزار جو نالو پڻ نڪرندو آهي، تنهنڪري اهو پاڻ کي Git سان پريشان نه ٿو ڪري سگهجي. وضاحت ڪرڻ لاءِ ته اهو عام طور تي ڇا ڪندو آهي، توهان ٺاهي سگهو ٿا، ڪانٽو، حذف، براؤز ريپوز؛ ڇڪڻ جون درخواستون ٺاهيو؛ ۽ ٻيا ڪيترائي. ان صورت ۾ توهان هڪ فيچر نه ڳولي سگهو ٿا پر ٽرمينل ڇڏڻ به نٿا چاهيو، اهو توهان کي GitHub ۾ صفحن کي براؤز ڪرڻ لاءِ متن تي ٻڌل برائوزر پڻ فراهم ڪري ٿو.

"CLI" جو مطلب آهي "Cاُمند Lهڪ Iانٽرفيس“. اھو ٽرمينل (يا ونڊوز ۾، ڪمانڊ پرامپٽ) انھن مان ھڪڙو آھي. جيڪڏهن ايپ جي نالي جي اڳيان "CLI" شامل ڪيو ويو آهي (هن آرٽيڪل لاءِ "Git CLI")، ان جو مطلب آهي ايپ صرف ٽرمينل ذريعي هلندي آهي. ۽ ”گٽ سي ايل آءِ“ هن حوالي سان آهي، چڱا، گيٽ اسان ڄاڻون ٿا. حڪم وانگر اسان ڪم ڪريون ٿا يا ٻيهر بحال ڪريون ٿا.

GUI جو مطلب آهي "Gمنطقي Uٿيڻ گھرجي Interface" ۽ اهو انٽرفيس آهي جنهن تي اسين "نويگيٽ" ڪندا آهيون. بهتر چيو، عام طور تي هڪ ڊيسڪ ٽاپ ماحول هڪ GUI آهي.

هڪ ”API ڪي“ ڪنهن قسم جي ڳجهي اسٽرنگ/فائل آهي جيڪا توهان خدمتن جي تصديق ڪرڻ لاءِ استعمال ڪندا آهيو. خبردار ٿيو ته اهو 2 عنصر جي تصديق کي نظرانداز ڪري ٿو ۽ ائين ئي جڏهن توهان ان سان تصديق ڪريو ٿا. تنهن ڪري پڪ ڪريو ته انهن کي محفوظ رکڻ لاءِ ۽ ڪنهن جاءِ تي جيڪو ٻين طريقن سان پهچ کان ٻاهر آهي.

سڀ کان پهرين، هي اوزار ڇا آهي؟ اهو ڪيئن سنڀاليندو آهي آپريشن جيڪي اسان ڪندا هئاسين Git CLI ذريعي؟

"gh" هڪ کليل ذريعو سمجهي سگهجي ٿو (سورس ڪوڊ) ريپر استعمال ڪندي Git CLI پاڻ ۽ GitHub APIs شيون حاصل ڪرڻ لاءِ. حقيقت ۾، توهان پڻ پاس ڪري سگهو ٿا پيٽرولر کي Git حڪمن کي استعمال ڪري ٿو! مان ان ۾ بعد ۾ داخل ڪندس.

انسٽال ڪرڻ ۽ ترتيب ڏيڻ

ذهن ۾ رکو ته آئون استعمال ڪندي انسٽاليشن ذريعي وڃو Termux. پر اهو طريقو تمام گهڻو هجڻ گهرجي جيئن توهان وٽ هجي ها ڊيبين تي ٻڌل ڊسٽرو - Ubuntu اهو آهي مثال طور انهن جي سرڪاري ريپوز تي. ونڊوز لاءِ، خير، توهان کي ضرورت آهي يا ته CygWin يا WSL مان سمجهان ٿو. ¯\_(ツ)_/¯

# اچو ته پهريون اوزار انسٽال ڪريون. Git کي پڻ انسٽال ڪيو جيئن اھو پس منظر # gh لاءِ آھي. $pkg install git gh -y # پوءِ سڀ کان پهريان، اسان کي تصديق ڪرڻ جي ضرورت آهي. هي ٽول جي ڊيٽابيس تي هڪ # نئين API ڪيئي محفوظ ڪندو تنهنڪري توهان کي # ٻيهر تصديق ڪرڻ جي ضرورت نه پوندي. جيڪڏهن توهان GITHUB_TOKEN اڳ ۾ ئي سيٽ ڪيو آهي، اهو ڪم نه ڪندو ته پوءِ ان کي پهرين # سيٽ ڪريو. :) $gh auth لاگ ان

هاڻي، ان کان اڳ جو اسان هتي جاري رکون، مون کي ڪجهه شين جي نشاندهي ڪرڻ جي ضرورت آهي.

  • پهرين، نه چونڊيو "GitHub انٽرپرائز سرور" جيڪڏهن توهان وٽ نه آهي ڪنهن قسم جي خود ميزباني ڪيل GitHub.
  • ٻيو، HTTPS جي بدران SSH استعمال ڪريو جيڪڏهن توهان وٽ توهان جي GitHub اڪائونٽ تي توهان جي عوامي ڪي شامل ڪئي وئي آهي. ان صورت ۾ توهان API ڪيئي وڃائي ڇڏيو، توهان گهٽ ۾ گهٽ پنهنجي SSH ڪيڏي نه وڃائيندؤ، تنهنڪري اهو پڻ سٺو موٽڻ وارو طريقو ٿي سگهي ٿو.
  • ٽيون، برائوزر سان لاگ ان چونڊيو صرف ان صورت ۾ جيڪڏهن توهان وٽ هٿ تي API ڪيچ نه آهي! حقيقت ۾، اهو احساس نه ٿيندو ته هڪ ٻي ڪنجي هجي جڏهن توهان وٽ اڳ ۾ ئي هڪ آهي.

هڪ دفعو توهان مڪمل ڪيو شيون ترتيب ڏيڻ، اچو ته ان بابت Git CLI کي ٻڌايو.

$gh auth سيٽ اپ-گٽ

اهو ضروري Git CLI ترتيبون ٺاهيندو صرف ان صورت ۾ جڏهن توهان جا ريفليڪس بيج ۾ داخل ٿين ۽ توهان کي GH جي بدران Git استعمال ڪن.

ڪجھ بنيادي حڪم

هاڻي ته توهان GH قائم ڪيو آهي، مون کي توهان کي ڪهاڻي جي بنياد تي ڪيترائي بنيادي حڪم سيکارڻ ڏيو.

سڀ کان پهريان، چئو ته توهان منهنجي مقامي منشور ريپو ڏانهن ڇڪڻ جي درخواست ٺاهڻ چاهيو ٿا. توھان چاھيو ٿا ته ان کي پھريائين.

$gh repo fork windowz414/platform_manifest! windowz414/platform_manifest اڳ ۾ ئي موجود آهي؟ ڇا توھان چانڊيو ڪلون ڪرڻ چاھيو ٿا؟ ها ڪلوننگ ۾ 'plateform_manifest'... ريموٽ: ڳڻپيوڪر شيون: 136، ٿي ويو. remote: شيون ڳڻڻ: 100% (136/136)، ٿي ويو. remote: Compressing objects: 100% (81/81), مڪمل. ريموٽ: ڪل 136 (ڊيلٽا 46)، ٻيهر استعمال ٿيل 89 (ڊيلٽا 12)، پيڪ ٻيهر استعمال ٿيل 0 شيون وصول ڪرڻ: 100٪ (136/136)، 30.70 KiB | 166.00 KiB/s، ٿي ويو. ڊيلٽا حل ڪرڻ: 100٪ (46/46)، ڪيو ويو. اپڊيٽ ڪرڻ upstream from github.com:windowz414/platform_manifest * [نئين برانچ] amyrom/rosie -> upstream/amyrom/rosie * [نئين برانچ] aosp-ग्यारह -> upstream/aosp-ग्यारह * [نئين شاخ] aosp-ten -> upstream/aosp-ten * [نئين برانچ] تير-11.0 -> upstream/arrow-11.0 * [نئين برانچ] cm-14.1 -> upstream/cm-14.1 * [نئين برانچ] dot11 -> upstream/dot11 * [نئين شاخ] ] e/os/v1-nougat -> upstream/e/os/v1-nougat * [نئين برانچ] fluid-11 -> upstream/fluid-11 * [نئين برانچ] fox_7.1 -> upstream/fox_7.1 * [نئين برانچ] هينٽائي-ريڪا -> اپ اسٽريم/هينٽيائي-ريڪا * [نئين برانچ] آئن-پائي -> اپ اسٽريم/آئن-پائي * [نئين برانچ] نسب-15.1 -> اپ اسٽريم/نسب-15.1 * [نئين برانچ] نسب -17.1 -> upstream/lineage-17.1 * [نئين برانچ] نسب-18.1 -> upstream/lineage-18.1 * [نئين شاخ] نسب-18.1_teos -> upstream/lineage-18.1_teos * [نئين شاخ] نسب-19.0 - > upstream/lineage-19.0 * [نئين برانچ] مين -> اپ اسٽريم/مئن * [نئين برانچ] mkn-mr1 -> upstream/mkn-mr1 * [نئين برانچ] revengeos-r11.0 -> upstream/revengeos-r11.0. 1 * [نئين برانچ] اسٽيلر-S1 -> upstream/stellar-S11 * [نئين برانچ] teos-n -> upstream/teos-n * [نئين برانچ] weebprojekt-11 -> upstream/weebprojekt-XNUMX ✓ ڪلون ٿيل ڪانٽو

پوءِ اچو ته چئو ته توهان وٽ توهان جي تجربن لاءِ هڪ الڳ تنظيم آهي جنهن کي "wz414-labs" سڏيو ويندو آهي، جيڪو توهان اڃا تائين پنهنجي ذاتي پروفائل تي ڪانٽو نه ڪيو آهي ۽ اتي کلون ڪرڻ چاهيو ٿا ته پوءِ ان جي بدران پل جي درخواست کوليو. توهان پڻ "cm-14.1" شاخ کي کلون ڪرڻ چاهيو ٿا، تنهنڪري توهان کي ٻيهر گٽ-چڪ آئوٽ ڪرڻ جي ضرورت نه هوندي.

$gh repo fork windowz414/platform_manifest --org="wz414-labs" -- --branch="cm-14.1" ✓ ٺاھيو ويو فورڪ wz414-labs/platform_manifest ؟ ڇا توھان چانڊيو ڪلون ڪرڻ چاھيو ٿا؟ ها ڪلوننگ ۾ 'plateform_manifest'... ريموٽ: ڳڻپيوڪر شيون: 136، ٿي ويو. remote: شيون ڳڻڻ: 100% (136/136)، ٿي ويو. remote: Compressing objects: 100% (81/81), مڪمل. ريموٽ: ڪل 136 (ڊيلٽا 46)، ٻيهر استعمال ٿيل 89 (ڊيلٽا 12)، پيڪ ٻيهر استعمال ٿيل 0 شيون وصول ڪرڻ: 100٪ (136/136)، 30.70 KiB | 120.00 KiB/s، ٿي ويو. ڊيلٽا حل ڪرڻ: 100٪ (46/46)، ڪيو ويو. اپڊيٽ ڪرڻ upstream from github.com:windowz414/platform_manifest * [نئين برانچ] amyrom/rosie -> upstream/amyrom/rosie * [نئين برانچ] aosp-ग्यारह -> upstream/aosp-ग्यारह * [نئين شاخ] aosp-ten -> upstream/aosp-ten * [نئين برانچ] تير-11.0 -> upstream/arrow-11.0 * [نئين برانچ] cm-14.1 -> upstream/cm-14.1 * [نئين برانچ] dot11 -> upstream/dot11 * [نئين شاخ] ] e/os/v1-nougat -> upstream/e/os/v1-nougat * [نئين برانچ] fluid-11 -> upstream/fluid-11 * [نئين برانچ] fox_7.1 -> upstream/fox_7.1 * [نئين برانچ] هينٽائي-ريڪا -> اپ اسٽريم/هينٽيائي-ريڪا * [نئين برانچ] آئن-پائي -> اپ اسٽريم/آئن-پائي * [نئين برانچ] نسب-15.1 -> اپ اسٽريم/نسب-15.1 * [نئين برانچ] نسب -17.1 -> upstream/lineage-17.1 * [نئين برانچ] نسب-18.1 -> upstream/lineage-18.1 * [نئين شاخ] نسب-18.1_teos -> upstream/lineage-18.1_teos * [نئين شاخ] نسب-19.0 - > upstream/lineage-19.0 * [نئين برانچ] main -> upstream/main * [نئين برانچ] mkn-mr1 -> upstream/mkn-mr1 * [نئين برانچ] revengeos-r11.0 -> upstream/revengeos-r11.0. 1 * [نئين برانچ] اسٽيلر-S1 -> upstream/stellar-S11 * [نئين برانچ] teos-n -> upstream/teos-n * [نئين شاخ] weebprojekt-11 -> upstream/weebprojekt-XNUMX ✓ ڪلون ٿيل ڪانٽو

توھان ڏسندا آھيو مون استعمال نه ڪيو ”-b cm-14.1“ ۽ ان جي بدران ڊگھو دليل ڏنو. هن آرٽيڪل جي تاريخ جي مطابق، فيبروري 16، 2022، GH ۾ هڪ بگ آهي ته اهو مختصر دليلن کي Git CLI کي صحيح طور تي پاس نٿو ڪري ۽ ان جي بدران ان کي ڊگهو دليلن جي طور تي ڪرڻ جي ضرورت آهي.

هڪ دفعو اهو ٿي چڪو آهي، توهان باقاعده فولڊر ۾ داخل ڪيو، توهان جون تبديليون ڪيون، انجام ڏنو پوء ان کي ڌڪايو، ۽ پل جي درخواست ڪرڻ لاء تيار آهيو. هن لاء، توهان کي صرف هڪ سادي ضرورت آهي

$ gh pr ٺاھيو --branch="cm-14.1" wz414-labs:cm-14.1 ۾ cm-14.1 ۾ windowz414/platform_manifest لاءِ پل جي درخواست ٺاهيندي؟ عنوان teos: تبديل ڪريو Git-Polycule ۾؟ جسم ؟ اڳتي ڇا آهي؟ جمع ڪرايو https://github.com/windowz414/platform_manifest/pull/1

جيڪڏهن توهان شامل نه ڪيو “–branch=cm-14.1”، توهان ٺاهي رهيا آهيو PR ڏانهن “مکيه” برانچ، جيڪو يقيناً مسئلا پيدا ڪندو جڏهن اهو صحيح طور تي هٿ نه ڪيو ويندو.

۽ هاڻي، مون کي هن پي آر کي ضم ڪرڻ جي ضرورت آهي، صحيح؟ تنهن ڪري مون پهريون ڀيرو ريپو کي ڪلون ڪيو، مقرر ڪيل شاخ ڏانهن چيڪ ڪيو، ۽ پي آر جي فهرست پهرين.

# پهرين ڪلوننگ. $git clone https://github.com/windowz414/platform_manifest ڪلوننگ ۾ 'platform_manifest'... ريموٽ: ڳڻپيوڪر شيون: 136، ٿي ويو. remote: شيون ڳڻڻ: 100% (136/136)، ٿي ويو. remote: Compressing objects: 100% (81/81), مڪمل. ريموٽ: ڪل 136 (ڊيلٽا 46)، ٻيهر استعمال ٿيل 89 (ڊيلٽا 12)، پيڪ ٻيهر استعمال ٿيل 0 شيون وصول ڪرڻ: 100٪ (136/136)، 30.70 KiB | 137.00 KiB/s، ٿي ويو. ڊيلٽا حل ڪرڻ: 100٪ (46/46)، ڪيو ويو. # پوءِ برانچ ڏانھن چيڪ آئوٽ ڪيو. $git چيڪ آئوٽ cm-14.1 برانچ 'cm-14.1' سيٽ اپ 'origin/cm-14.1' کي ٽريڪ ڪرڻ لاءِ. تبديل ڪيو ويو نئين شاخ 'cm-14.1' # ۽ هاڻي لسٽنگ PRs. $gh pr لسٽ ڏيکاريندي 1 مان 1 کليل پل جي درخواست windowz414/platform_manifest #1 teos ۾: تبديل ڪريو Git-Polycule wz414-labs:cm-14.1

هاڻي ته اسان ڏسون ٿا ته ريموٽ کي ”گٽ پوليڪيول“ ۾ تبديل ڪرڻ لاءِ هڪ پي آر آهي، اچو ته ڏسون ته ان سان ڪهڙي تبديلي آئي آهي.

$gh pr diff 1 diff --git a/teos.xml b/teos.xml انڊيڪس b145fc0..3aadeb6 100644 --- a/teos.xml +++ b/teos.xml @@ -2,7 +2,7، 414 @@ 

واعدو لڳي ٿو! ملائڻ جو وقت!

$gh pr ضم 1؟ ضم ٿيڻ جو ڪهڙو طريقو توهان استعمال ڪرڻ چاهيو ٿا؟ بحال ۽ ملائي؟ اڳتي ڇا آهي؟ جمع ڪرايو ✓ ٻيهر قائم ڪيل ۽ ضم ٿيل پل جي درخواست #1 (teos: تبديل ڪريو Git-Polycule)

هاڻي ته مون ان کي ضم ڪيو آهي، توهان پنهنجي ڪانٽو کي ختم ڪري سگهو ٿا.

$gh ريپو حذف ڪريو --confirm wz414-labs/platform_manifest ✓ حذف ٿيل مخزن wz414-labs/platform_manifest

توھان ڏسندا آھيو ته سڌو سنئون ريپو کي حذف ڪيو ويو بغير تصديق جي درخواست جي ڇاڪاڻ ته مون اتي ”-تصديق“ پيراميٽر پاس ڪيو. جيڪڏھن توھان ان کي پاس نه ڪندا، توھان ھي حاصل ڪندا:

$gh repo delete windowz414/systemd؟ ٽائيپ ڪريو windowz414/systemd حذف ڪرڻ جي تصديق ڪرڻ لاءِ:

۽ توھان کي ٽائپ ڪرڻو پوندو سڄو ريپو نالو. وقت جو ضايع…

خلاصو

سادي لفظ ۾، `gh` هڪ خوبصورت سادو Git CLI/Curl wrapper آهي سادو Git آپريشنز ۽ GitHub API شين کي هڪ ئي ڇت هيٺ متحد ڪري ٿو. توهان ان کي ڪيئن استعمال ڪندا آهيو؟ ڇا اھو توھان لاءِ واعدو ڪندڙ نظر اچي ٿو جيئن اھو مون سان ڪندو آھي؟ توهان کان ٻڌڻ لاء اڳتي ڏسي رهيا آهيو!

لاڳاپيل مقالات