Offeryn llinell orchymyn hawdd ei ddefnyddio GitHub: “gh”!

Os ydych chi wedi bod yn defnyddio GitHub ac yn ffafrio'r llinell orchymyn fel fi i wneud popeth heb unrhyw gymhlethdodau ar GUI, efallai eich bod wedi sylwi sut y dechreuodd GitHub ddefnyddio eu hofferyn newydd o'r enw “gh”. Penderfynais roi saethiad iddo, oherwydd roedd yn edrych yn addawol wedi'r cyfan. Ac yn bersonol roeddwn i'n ei hoffi'n fawr - cymaint nes fy mod i eisiau gwneud erthygl amdano!

Fodd bynnag, cyn i ni ddechrau, mae angen i mi esbonio sawl term y byddaf yn ei ddefnyddio yn yr erthygl hon.

Mae “GH” yn golygu “GitHub”. Dyma lle mae enw'r offeryn yn tarddu hefyd, felly ni ellir ei gymysgu â Git ei hun. I egluro beth mae'n ei wneud yn gyffredinol, gallwch greu, fforchio, dileu, pori repos; creu ceisiadau tynnu; a llawer mwy. Rhag ofn na allwch ddod o hyd i nodwedd ond hefyd nad ydych am adael terfynell, mae hefyd yn darparu porwr sy'n seiliedig ar destun i chi bori tudalennau yn GitHub.

Mae “CLI” yn golygu “Cgorchymyn Lane Irhyngwyneb”. Mae'r Terminal hwnnw (neu yn Windows, Command Prompt) yn un ohonyn nhw. Os oes “CLI” wedi'i atodi wrth ymyl enw ap (“Git CLI” ar gyfer yr erthygl hon), mae'n golygu bod yr ap yn rhedeg trwy derfynell yn unig. A “Git CLI” yn y cyd-destun hwn, wel, yw’r Git rydyn ni’n ei adnabod. Fel y gorchymyn a wnawn ymrwymo neu rebases ag ef.

Mae GUI yn sefyll am “Grhafaidd Ugweler Ininterface" a dyma'r rhyngwyneb rydyn ni'n “llywio” arno. Wedi dweud yn well, amgylchedd bwrdd gwaith yn gyffredinol yw GUI.

Mae “allwedd API” yn rhyw fath o linyn / ffeil gyfrinachol rydych chi'n ei ddefnyddio i ddilysu gwasanaethau. Byddwch yn ofalus ei fod yn osgoi dilysu 2 ffactor ac yn y blaen pan fyddwch yn dilysu ag ef. Felly gwnewch yn siŵr eu cadw'n ddiogel ac yn rhywle sydd allan o gyrraedd trwy ddulliau eraill.

Yn gyntaf oll, beth yw'r offeryn hwn? Sut mae'n delio â gweithrediadau y byddem yn eu gwneud trwy Git CLI?

gellir ystyried “gh” fel ffynhonnell agored (Cod Ffynhonnell) deunydd lapio yn defnyddio Git CLI ei hun ac APIs GitHub i gyflawni pethau. Mewn gwirionedd, gallwch chi hyd yn oed basio paramedrau i'r gorchmynion Git y mae'n eu defnyddio! Byddaf yn mynd i mewn i'r rheini yn nes ymlaen.

Gosod a gosod

Cadwch mewn cof y byddaf yn mynd trwy'r gosodiad gan ddefnyddio termux. Ond dylai'r weithdrefn fod bron yr un fath ag y gallech ei chael ar distro yn seiliedig ar Debian - mae gan Ubuntu ar eu repos swyddogol er enghraifft. Ar gyfer Windows, wel, mae angen CygWin neu WSL am wn i. ¯\_(ツ)_/¯

# Gadewch i ni osod yr offeryn yn gyntaf. Hefyd yn gosod Git fel y backend # ar gyfer gh. $pkg install git gh -y # Yna cyn popeth, mae angen i ni ddilysu. Bydd hyn yn arbed # allwedd API newydd ar gronfa ddata'r offeryn felly ni fydd angen i chi ddilysu # eto. Os ydych chi eisoes wedi gosod GITHUB_TOKEN, ni fydd hyn yn gweithio felly dadosod # fe yn gyntaf. :) $gh auth mewngofnodi

Nawr, cyn inni barhau yma, mae angen i mi nodi sawl peth.

  • Yn gyntaf, peidiwch â dewis "GitHub Enterprise Server" os nad oes gennych chi ryw fath o GitHub hunangynhaliol.
  • Yn ail, defnyddiwch SSH yn lle HTTPS os yw eich allwedd gyhoeddus wedi'i hychwanegu at eich cyfrif GitHub. Rhag ofn y byddwch yn colli'r allwedd API, ni fyddwch o leiaf yn colli'ch allwedd SSH felly gall fod yn ddull wrth gefn da hefyd.
  • Yn drydydd, dewiswch fewngofnodi gyda porwr dim ond os nad oes gennych allwedd API wrth law! Mewn gwirionedd, ni fyddai'n gwneud synnwyr i gael allwedd arall tra bod gennych chi un yn barod.

Unwaith y byddwch chi wedi gorffen gosod pethau, gadewch i ni ddweud wrth Git CLI amdano.

$gh auth setup-git

Bydd hyn yn gwneud y cyfluniadau Git CLI angenrheidiol rhag ofn i'ch atgyrchau fynd i mewn a gwneud i chi ddefnyddio Git yn lle GH.

Rhai gorchmynion sylfaenol

Nawr eich bod wedi sefydlu GH, gadewch imi ddysgu sawl gorchymyn sylfaenol i chi ar sail stori.

Yn gyntaf oll, gadewch i ni ddweud eich bod am greu cais tynnu i fy repo maniffestau lleol. Rydych chi eisiau ei fforchio yn gyntaf.

$gh fforch repo windowz414/platform_manifest ! windowz414/platform_manifest yn bodoli eisoes ? Hoffech chi glonio'r fforc? Ie Clonio i mewn i 'platform_manifest'... anghysbell: Gwrthrychau rhifo: 136, wedi'i wneud. anghysbell: Cyfrif gwrthrychau: 100% (136/136), wedi'i wneud. anghysbell: Cywasgu gwrthrychau: 100% (81/81), wedi'i wneud. anghysbell: Cyfanswm 136 (delta 46), ailddefnyddiwyd 89 (delta 12), pecyn-ailddefnyddio 0 Gwrthrychau derbyn: 100% (136/136), 30.70 KiB | 166.00 KiB/s, wedi'i wneud. Datrys deltas: 100% (46/46), wedi'i wneud. Diweddaru i fyny'r afon O github.com:windowz414/platform_manifest * [cangen newydd] amyrom/rosie -> i fyny'r afon/amyrom/rosie * [cangen newydd] aosp-eleven -> i fyny'r afon/aosp-eleven * [cangen newydd] aosp-deg -> i fyny'r afon/aosp-ten * [cangen newydd] saeth-11.0 -> i fyny'r afon/saeth-11.0 * [cangen newydd] cm-14.1 -> i fyny'r afon/cm-14.1 * [cangen newydd] dot11 -> i fyny'r afon/dot11 * [cangen newydd ] e/os/v1-nougat -> i fyny'r afon/e/os/v1-nougat * [cangen newydd] hylif-11 -> i fyny'r afon/hylif-11 * [cangen newydd] fox_7.1 -> i fyny'r afon/fox_7.1 * [cangen newydd] hentai-rika -> i fyny'r afon/hentai-rika * [cangen newydd] pastai ïon -> i fyny'r afon/pei-ion * [cangen newydd] llinach-15.1 -> i fyny'r afon/llinach-15.1 * [cangen newydd] llinach -17.1 -> i fyny'r afon/llinach-17.1 * [cangen newydd] llinach-18.1 -> i fyny'r afon/llinach-18.1 * [cangen newydd] llinach-18.1_teos -> i fyny'r afon/lineage-18.1_teos * [cangen newydd] llinach-19.0 - > i fyny'r afon/llinach-19.0 * [cangen newydd] prif -> i fyny'r afon/prif * [cangen newydd] mkn-mr1 -> i fyny'r afon/mkn-mr1 * [cangen newydd] revengeos-r11.0 -> i fyny'r afon/revengeos-r11.0. 1 * [cangen newydd] serol-S1 -> i fyny'r afon/serol-S11 * [cangen newydd] teos-n -> i fyny'r afon/teos-n * [cangen newydd] weebprojekt-11 -> i fyny'r afon/weebprojekt-XNUMX ✓ Fforc wedi'i chlonio

Yna gadewch i ni ddweud bod gennych chi sefydliad ar wahân ar gyfer eich arbrofion o'r enw “wz414-labs”, na wnaethoch chi fforchio ar eich proffil personol eto ac eisiau clonio yno ac yna agor cais tynnu drwodd yno yn lle hynny. Rydych chi hefyd eisiau clonio'r gangen “cm-14.1” felly ni fydd angen i chi wneud git-checkout iddo eto.

$gh repo fforc windowz414/platform_manifest --org="wz414-labs" -- --branch="cm-14.1" ✓ Wedi creu fforc wz414-labs/platform_manifest ? Hoffech chi glonio'r fforc? Ie Clonio i mewn i 'platform_manifest'... anghysbell: Gwrthrychau rhifo: 136, wedi'i wneud. anghysbell: Cyfrif gwrthrychau: 100% (136/136), wedi'i wneud. anghysbell: Cywasgu gwrthrychau: 100% (81/81), wedi'i wneud. anghysbell: Cyfanswm 136 (delta 46), ailddefnyddiwyd 89 (delta 12), pecyn-ailddefnyddio 0 Gwrthrychau derbyn: 100% (136/136), 30.70 KiB | 120.00 KiB/s, wedi'i wneud. Datrys deltas: 100% (46/46), wedi'i wneud. Diweddaru i fyny'r afon O github.com:windowz414/platform_manifest * [cangen newydd] amyrom/rosie -> i fyny'r afon/amyrom/rosie * [cangen newydd] aosp-eleven -> i fyny'r afon/aosp-eleven * [cangen newydd] aosp-deg -> i fyny'r afon/aosp-ten * [cangen newydd] saeth-11.0 -> i fyny'r afon/saeth-11.0 * [cangen newydd] cm-14.1 -> i fyny'r afon/cm-14.1 * [cangen newydd] dot11 -> i fyny'r afon/dot11 * [cangen newydd ] e/os/v1-nougat -> i fyny'r afon/e/os/v1-nougat * [cangen newydd] hylif-11 -> i fyny'r afon/hylif-11 * [cangen newydd] fox_7.1 -> i fyny'r afon/fox_7.1 * [cangen newydd] hentai-rika -> i fyny'r afon/hentai-rika * [cangen newydd] pastai ïon -> i fyny'r afon/pei-ion * [cangen newydd] llinach-15.1 -> i fyny'r afon/llinach-15.1 * [cangen newydd] llinach -17.1 -> i fyny'r afon/llinach-17.1 * [cangen newydd] llinach-18.1 -> i fyny'r afon/llinach-18.1 * [cangen newydd] llinach-18.1_teos -> i fyny'r afon/lineage-18.1_teos * [cangen newydd] llinach-19.0 - > i fyny'r afon/llinach-19.0 * [cangen newydd] prif -> i fyny'r afon/prif * [cangen newydd] mkn-mr1 -> i fyny'r afon/mkn-mr1 * [cangen newydd] revengeos-r11.0 -> i fyny'r afon/revengeos-r11.0. 1 * [cangen newydd] serol-S1 -> i fyny'r afon/serol-S11 * [cangen newydd] teos-n -> i fyny'r afon/teos-n * [cangen newydd] weebprojekt-11 -> i fyny'r afon/weebprojekt-XNUMX ✓ Fforch wedi'i glonio

Rydych chi'n gweld wnes i ddim defnyddio “-b cm-14.1” a gwnes i'r ddadl hir yn lle hynny. O ddyddiad yr erthygl hon, Chwefror 16, 2022, mae gan GH nam nad yw'n trosglwyddo dadleuon byr i Git CLI yn gywir ac felly mae angen ei wneud fel dadleuon hir yn lle hynny.

Unwaith y bydd hynny wedi'i wneud, fe wnaethoch chi fynd i mewn i'r ffolder yn rheolaidd, gwneud eich newidiadau, ymrwymo yna ei wthio, ac rydych chi'n barod i wneud cais tynnu. Ar gyfer hyn, y cyfan sydd ei angen yw syml

$gh pr create --branch="cm-14.1" Creu cais tynnu ar gyfer wz414-labs: cm-14.1 i mewn i cm-14.1 yn windowz414/platform_manifest ? Title teos: Newid i Git-Polycule ? Corff ? Beth sydd nesaf? Cyflwyno https://github.com/windowz414/platform_manifest/pull/1

Os nad ydych yn atodi “–branch=cm-14.1”, byddech yn creu cysylltiadau cyhoeddus tuag at “brif” gangen, a fydd wrth gwrs yn achosi problemau pan na chaiff ei drin yn iawn.

Ac yn awr, mae angen i mi uno cysylltiadau cyhoeddus hwn, iawn? Felly rwy'n clonio'r repo yn gyntaf, til i'r gangen a neilltuwyd, a rhestru cysylltiadau cyhoeddus yn gyntaf.

# Clonio yn gyntaf. $ git clôn https://github.com/windowz414/platform_manifest Clonio i mewn i 'platform_manifest'... anghysbell: Rhifo gwrthrychau: 136, wedi'i wneud. anghysbell: Cyfrif gwrthrychau: 100% (136/136), wedi'i wneud. anghysbell: Cywasgu gwrthrychau: 100% (81/81), wedi'i wneud. anghysbell: Cyfanswm 136 (delta 46), ailddefnyddiwyd 89 (delta 12), pecyn-ailddefnyddio 0 Gwrthrychau derbyn: 100% (136/136), 30.70 KiB | 137.00 KiB/s, wedi'i wneud. Datrys deltas: 100% (46/46), wedi'i wneud. # Yna gwirio allan i'r gangen. $git til cm-14.1 cangen 'cm-14.1' wedi'i sefydlu i olrhain 'tarddiad/cm-14.1'. Wedi newid i gangen newydd 'cm-14.1' # Ac yn awr yn rhestru cysylltiadau cyhoeddus. $gh pr list Yn dangos 1 o 1 cais tynnu agored yn windowz414/platform_manifest #1 teos: Newid i Git-Polycule wz414-labs:cm-14.1

Nawr ein bod yn gweld bod cysylltiadau cyhoeddus i newid o bell i “Git-Polycule”, gadewch i ni weld beth sydd wedi newid ag ef.

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

Ymddangos yn addawol! Amser i uno!

$ gh pr uno 1 ? Pa ddull uno hoffech chi ei ddefnyddio? Ail-seilio ac uno ? Beth sydd nesaf? Cyflwyno ✓ Cais tynfa wedi'i ailseilio a'i gyfuno #1 (teos: Newid i Git-Polycule)

Nawr fy mod wedi ei uno, gallwch ddileu eich fforc.

$gh repo dileu --confirm wz414-labs/platform_manifest ✓ Ystorfa wedi'i dileu wz414-labs/platform_manifest

Rydych chi'n gweld bod yn syth i fyny wedi dileu'r repo heb unrhyw gais cadarnhad oherwydd i mi basio'r paramedr “–confirm” yno. Os na fyddech chi'n ei basio, byddech chi'n cael hwn:

$gh repo dileu windowz414/systemd ? Teipiwch windowz414/systemd i gadarnhau dileu:

A byddai angen i chi deipio'r enw repo cyfan. Gwastraff amser…

Crynodeb

Yn syml, mae `gh` yn ddeunydd lapio Git CLI / Curl eithaf syml sy'n uno gweithrediadau Git syml a phethau API GitHub o dan yr un to. Sut ydych chi'n ei ddefnyddio? A yw'n edrych yn addawol i chi fel y mae i mi? Edrych ymlaen at glywed oddi wrthych!

Erthyglau Perthnasol