د GitHub د کمانډ لاین وسیله کارول اسانه دي: "gh"!

که تاسو د GitHub کاروئ او زما په څیر د کمانډ لاین ته ترجیح ورکوئ ترڅو په GUI کې پرته له کوم پیچلتیا څخه هرڅه ترسره کړئ ، تاسو شاید لیدلي وي چې څنګه ګیټ هب د دوی نه نوي وسیلې کارول پیل کړي چې "gh" نومیږي. ما پریکړه وکړه چې دا یو شاټ ورکړم، ځکه چې دا د ټولو وروسته ژمن ښکاري. او ما په شخصي توګه دا خورا خوښ کړ - دومره ډیر چې ما غوښتل د دې په اړه یوه مقاله جوړه کړم!

مخکې لدې چې موږ پیل کړو ، زه اړتیا لرم څو شرایط تشریح کړم چې زه به پدې مقاله کې کاروم.

"GH" د "لپاره ولاړ دیGitHub" دا هغه ځای دی چې د وسیلې نوم هم له هغه ځایه راپورته کیږي ، نو دا پخپله د ګیټ سره مغشوش نشي. د دې تشریح کولو لپاره چې دا په عمومي ډول څه کوي، تاسو کولی شئ ریپوز جوړ کړئ، فورک کړئ، حذف کړئ، لټون وکړئ؛ د پلولو غوښتنې رامینځته کول؛ او ډیر نور. په هغه حالت کې چې تاسو نشئ موندلی مګر دا هم نه غواړئ چې ټرمینل پریږدئ ، دا ستاسو لپاره په GitHub کې د پاڼو لټون کولو لپاره د متن پراساس براوزر هم چمتو کوي.

"CLI" د "لپاره ولاړ دیCاوماند Lپه Iانٹرفیس ". دا ټرمینل (یا په وینډوز کې، کمانډ پرامپټ) یو له دوی څخه دی. که چیرې د اپلیکیشن نوم سره یو "CLI" ضمیمه وي (د دې مقالې لپاره "Git CLI")، دا پدې مانا ده چې ایپ یوازې د ټرمینل له لارې پرمخ ځي. او پدې شرایطو کې "Git CLI" دی، ښه، هغه Git چې موږ یې پوهیږو. د هغه قوماندې په څیر چې موږ یې ژمنې یا بیا تکرار کوو.

GUI معنی لري "Gرافیکل Uسر Interface" او دا هغه انٹرفیس دی چې موږ یې "نیویگیټ" کوو. غوره وویل ، په عمومي ډول د ډیسټاپ چاپیریال GUI دی.

د "API کیلي" یو ډول پټ تار / فایل دی چې تاسو یې د خدماتو تصدیق کولو لپاره کاروئ. خبر اوسئ چې دا د 2 فاکتور تصدیق کولو څخه تیریږي او داسې نور کله چې تاسو د دې سره تصدیق کوئ. نو ډاډ ترلاسه کړئ چې دوی خوندي وساتئ او داسې ځای چې د نورو وسیلو له لارې د لاسرسي څخه لرې وي.

لومړی، دا وسیله څه ده؟ دا څنګه عملیات اداره کوي چې موږ به یې د Git CLI له لارې ترسره کړو؟

"gh" د خلاصې سرچینې په توګه ګڼل کیدی شي (د سرچينې کوډ) ریپر د شیانو د ترسره کولو لپاره پخپله Git CLI او GitHub APIs کاروي. په حقیقت کې ، تاسو حتی کولی شئ د Git کمانډونو ته پیرامیټونه انتقال کړئ چې دا یې کاروي! زه به وروسته دوی ته ورشم.

نصب او تنظیم کول

په یاد ولرئ چې زه به د نصبولو له لارې لاړ شم ټرمکس. مګر پروسیجر باید خورا ورته وي لکه څنګه چې تاسو کولی شئ د ډیبیان میشته ډیسټرو کې ولرئ - اوبنټو دا د مثال په توګه د دوی په رسمي ریپوز کې لري. د وینډوز لپاره ، ښه ، تاسو یا هم CygWin یا WSL ته اړتیا لرئ زه فکر کوم. ¯\_(ツ)_/¯

# راځئ لومړی وسیله نصب کړو. Git هم نصب کړئ ځکه چې دا د gh لپاره بیکینډ # دی. $pkg install git gh -y # بیا د هرڅه دمخه ، موږ تصدیق کولو ته اړتیا لرو. دا به د وسیلې ډیټابیس کې د # نوې API کیلي خوندي کړي نو تاسو به د # بیا تصدیق کولو ته اړتیا ونلرئ. که تاسو دمخه د GITHUB_TOKEN تنظیم کړی وي، نو دا به کار ونکړي نو # دا لومړی غیر تنظیم کړئ. :) $ gh auth ننوتل

اوس، مخکې له دې چې موږ دلته دوام ورکړم، زه اړتیا لرم څو شیان په ګوته کړم.

  • لومړی، د "GitHub Enterprise Server" انتخاب مه کوئ که تاسو یو ډول ځان کوربه شوی GitHub نلرئ.
  • دوهم، د HTTPS پرځای SSH وکاروئ که تاسو خپل عامه کیلي په خپل GitHub حساب کې اضافه کړئ. په هغه صورت کې چې تاسو د API کیلي له لاسه ورکړئ، تاسو به لږترلږه د SSH کیلي له لاسه ورنکړي نو دا د بیرته راستنیدو ښه طریقه هم کیدی شي.
  • دریم، د براوزر سره ننوتل غوره کړئ یوازې که تاسو په لاس کې د API کیلي نلرئ! واقعیا ، دا به معنی ونلري چې بله کیلي ولرئ پداسې حال کې چې تاسو دمخه یوه لرئ.

یوځل چې تاسو د شیانو تنظیم کول سرته ورسول ، راځئ چې د دې په اړه Git CLI ته ووایو.

$ gh auth setup-git

دا به د Git CLI اړین تشکیلات رامینځته کړي یوازې په هغه صورت کې چې ستاسو انعکاسونه دننه شي او تاسو د GH پرځای Git وکاروئ.

ځینې ​​اساسي حکمونه

اوس چې تاسو GH ترتیب کړی، اجازه راکړئ تاسو ته د کیسې په اساس څو اساسي حکمونه درکړم.

له هرڅه دمخه ، اجازه راکړئ ووایم چې تاسو غواړئ زما د ځایی منشور ریپو ته د پل غوښتنه رامینځته کړئ. تاسو غواړئ دا لومړی وخورئ.

$gh repo fork windowz414/platform_manifest! windowz414/platform_manifest لا دمخه شتون لري؟ ایا ته غواړې چې فورک کلون کړي؟ هو په 'platform_manifest' کې کلون کول... ریموټ: د شیانو شمیرل: 136، ترسره شوی. ریموټ: د شیانو شمیرل: 100٪ (136/136)، ترسره شوی. ریموټ: د شیانو کمپریس کول: 100٪ (81/81)، ترسره شوی. ریموټ: ټولټال 136 (ډیلټا 46)، بیا کارول شوي 89 (ډیلټا 12)، پیک بیا کارول شوي 0 د شیانو ترلاسه کول: 100٪ (136/136)، 30.70 KiB | 166.00 KiB/s، بشپړ شوی. د ډیلټا حل کول: 100٪ (46/46)، ترسره شوي. د github.com څخه upstream تازه کول: windowz414/platform_manifest * [نوی څانګه] amyrom/rosie -> upstream/amyrom/rosie * [نوی څانګه] aosp-11.0 -> upstream/aosp-11.0even * [نوی څانګه] aosp-ten -> upstream/aosp-ten * [نوی څانګه] تیر-14.1 -> upstream/arrow-14.1 * [نوی څانګه] cm-11 -> upstream/cm-11 * [نوی څانګه] dot1 -> upstream/dot1 * [نوی څانګه ] e/os/v11-nougat -> upstream/e/os/v11-nougat * [نوی څانګه] سیال-7.1 -> upstream/fluid-7.1 * [نوی څانګه] fox_15.1 -> upstream/fox_15.1 * [نوی څانګه] هینټای ریکا -> پورته / هینټای ریکا * [نوی څانګه] آئن پای -> پورته / آیون پای * [نوی برانچ] نسب - 17.1 -> پورته / نسب - 17.1 * [نوی څانګه] نسب -18.1 -> upstream/lineage-18.1 * [نوی برانچ] نسب-18.1 -> upstream/lineage-18.1 * [نوی برانچ] نسب-19.0_teos -> upstream/lineage-19.0_teos * [نوی برانچ] نسب-1 - > upstream/lineage-1 * [نوی څانګه] main -> upstream/main * [new branch] mkn-mr11.0 -> upstream/mkn-mr11.0 * [نوی څانګه] revengeos-r1 -> upstream/revengeos-r1. 11 * [نوی څانګه] ستوری-S11 -> upstream/stellar-SXNUMX * [نوی څانګه] teos-n -> upstream/teos-n * [نوی څانګه] weebprojekt-XNUMX -> upstream/weebprojekt-XNUMX ✓ کلون شوی فورک

بیا راځئ چې ووایو تاسو د خپلو تجربو لپاره یو جلا سازمان لرئ چې "wz414-labs" نومیږي، چې تاسو تر اوسه په خپل شخصي پروفایل کې فورک نه دی اخیستی او غواړئ چې هلته کلون کړئ بیا د دې پرځای د پلولو غوښتنه خلاص کړئ. تاسو هم غواړئ د "cm-14.1" څانګه کلون کړئ نو تاسو اړتیا نلرئ بیا دې ته git-checkout ترسره کړئ.

$gh repo fork windowz414/platform_manifest --org="wz414-labs" -- --branch="cm-14.1" ✓ fork wz414-labs/platform_manifest جوړ شوی؟ ایا ته غواړې چې فورک کلون کړي؟ هو په 'platform_manifest' کې کلون کول... ریموټ: د شیانو شمیرل: 136، ترسره شوی. ریموټ: د شیانو شمیرل: 100٪ (136/136)، ترسره شوی. ریموټ: د شیانو کمپریس کول: 100٪ (81/81)، ترسره شوی. ریموټ: ټولټال 136 (ډیلټا 46)، بیا کارول شوي 89 (ډیلټا 12)، پیک بیا کارول شوي 0 د شیانو ترلاسه کول: 100٪ (136/136)، 30.70 KiB | 120.00 KiB/s، بشپړ شوی. د ډیلټا حل کول: 100٪ (46/46)، ترسره شوي. د github.com څخه upstream تازه کول: windowz414/platform_manifest * [نوی څانګه] amyrom/rosie -> upstream/amyrom/rosie * [نوی څانګه] aosp-11.0 -> upstream/aosp-11.0even * [نوی څانګه] aosp-ten -> upstream/aosp-ten * [نوی څانګه] تیر-14.1 -> upstream/arrow-14.1 * [نوی څانګه] cm-11 -> upstream/cm-11 * [نوی څانګه] dot1 -> upstream/dot1 * [نوی څانګه ] e/os/v11-nougat -> upstream/e/os/v11-nougat * [نوی څانګه] سیال-7.1 -> upstream/fluid-7.1 * [نوی څانګه] fox_15.1 -> upstream/fox_15.1 * [نوی څانګه] هینټای ریکا -> پورته / هینټای ریکا * [نوی څانګه] آئن پای -> پورته / آیون پای * [نوی برانچ] نسب - 17.1 -> پورته / نسب - 17.1 * [نوی څانګه] نسب -18.1 -> upstream/lineage-18.1 * [نوی برانچ] نسب-18.1 -> upstream/lineage-18.1 * [نوی برانچ] نسب-19.0_teos -> upstream/lineage-19.0_teos * [نوی برانچ] نسب-1 - > upstream/lineage-1 * [نوی څانګه] main -> upstream/main * [new branch] mkn-mr11.0 -> upstream/mkn-mr11.0 * [نوی څانګه] revengeos-r1 -> upstream/revengeos-r1. 11 * [نوی څانګه] ستوری-S11 -> upstream/stellar-SXNUMX * [نوی څانګه] teos-n -> upstream/teos-n * [نوی څانګه] weebprojekt-XNUMX -> upstream/weebprojekt-XNUMX ✓ کلون شوی فورک

تاسو ګورئ چې ما "-b cm-14.1" نه دی کارولی او پرځای یې اوږد استدلال کړی. د دې مقالې نیټې پورې، د فبروري 16، 2022، GH یوه ستونزه لري چې دا په سمه توګه Git CLI ته لنډ دلیلونه نه لیږدوي او نو دا باید د دې پرځای د اوږد دلیلونو په توګه ترسره شي.

یوځل چې دا سرته ورسي ، تاسو په منظم ډول فولډر ته ننوتئ ، خپل بدلونونه یې ترسره کړل ، ژمنه یې وکړه بیا یې فشار ورکړ ، او د پلولو غوښتنې ترسره کولو ته چمتو یاست. د دې لپاره، تاسو ټول ساده ته اړتیا لرئ

$ gh pr create --branch="cm-14.1" په windowz414/platform_manifest کې د wz14.1-labs:cm-14.1 ته cm-414 لپاره د پل غوښتنه جوړول؟ د ټیوس سرلیک: Git-Polycule ته بدلون ورکړئ؟ بدن ؟ ورپسی څه دي؟ وسپارئ https://github.com/windowz414/platform_manifest/pull/1

که تاسو "–شاخ = cm-14.1" ضمیمه نه کړئ، نو تاسو به د "اصلي" څانګې په لور PR رامینځته کړئ، کوم چې البته د مسلو لامل کیږي کله چې دا سم نه اداره کیږي.

او اوس، زه اړتیا لرم چې دا PR یوځای کړم، سمه ده؟ نو زه لومړی ریپو کلون کړم ، ټاکل شوې څانګې ته چیک آوټ کړم ، او لومړی PRs لیست کړم.

# لومړی کلون کول. $ git clone https://github.com/windowz414/platform_manifest کلون کول په 'platform_manifest'... ریموټ: د شیانو شمیرل: 136، ترسره شوی. ریموټ: د شیانو شمیرل: 100٪ (136/136)، ترسره شوی. ریموټ: د شیانو کمپریس کول: 100٪ (81/81)، ترسره شوی. ریموټ: ټولټال 136 (ډیلټا 46)، بیا کارول شوي 89 (ډیلټا 12)، پیک بیا کارول شوي 0 د شیانو ترلاسه کول: 100٪ (136/136)، 30.70 KiB | 137.00 KiB/s، ترسره شوی. د ډیلټا حل کول: 100٪ (46/46)، ترسره شوي. # بیا یې څانګې ته چک کول. $ git checkout cm-14.1 برانچ 'cm-14.1' د 'origin/cm-14.1' تعقیب لپاره تنظیم شوی. یوې نوې څانګې ته بدل شوی 'cm-14.1' # او اوس د PRs لیست کوي. د $ gh pr لیست په windowz1/platform_manifest #1 teos کې د 414 څخه 1 خلاص پل غوښتنه ښودل: د Git-Polycule wz414-labs:cm-14.1 ته بدلول

اوس چې موږ ګورو چې د "ګیټ پولیکول" ته د ریموټ بدلولو لپاره PR شتون لري ، راځئ وګورو چې پدې سره څه بدلون راغلی.

$gh pr diff 1 diff --git a/teos.xml b/teos.xml index b145fc0..3aadeb6 100644 --- a/teos.xml +++ b/teos.xml @@ -2,7 +2,7, ۷ @@ 

هیله مند ښکاري! د یوځای کیدو وخت!

$ gh pr 1 یوځای کول؟ تاسو د ادغام کومه طریقه کارول غواړئ؟ بیا تنظیم او یوځای کول؟ ورپسی څه دي؟ وسپارئ ✓ بیا ځای شوی او یوځای شوی پل غوښتنه # 1 (teos: Git-Polycule ته بدلون)

اوس چې ما دا یوځای کړی، تاسو کولی شئ خپل فورک حذف کړئ.

$gh repo ړنګول --confirm wz414-labs/platform_manifest ✓ ړنګ شوی ذخیره wz414-labs/platform_manifest

تاسو ګورئ چې مستقیم د تایید غوښتنې غوښتنې پرته ریپو حذف کړی ځکه چې ما هلته "-تصدیق" پیرامیټر تیر کړ. که تاسو دا نه تېر کړئ، تاسو به دا ترلاسه کړئ:

$gh repo windowz414/systemd حذف کړئ؟ د ړنګولو تایید لپاره windowz414/systemd ټایپ کړئ:

او تاسو به اړتیا ولرئ ټول ریپو نوم ټایپ کړئ. د وخت ضایع کول…

لنډیز

په ساده ډول ووایاست، `gh` یو ښکلی ساده Git CLI/Curl ریپر دی چې د ورته چت لاندې ساده Git عملیات او GitHub API شیان متحد کوي. څنګه یې وکاروئ؟ ایا دا تاسو ته د امید وړ ښکاري لکه دا ما ته کوي؟ ستاسو څخه اوریدلو ته سترګې په لار!

اړونده بیشتر