Fitaovana mora ampiasaina amin'ny GitHub: "gh"!

Raha mampiasa GitHub ianao ary aleonao ny baiko toa ahy mba hamitana ny zava-drehetra tsy misy fahasarotana amin'ny GUI, dia mety ho hitanao ny fomba nanombohan'ny GitHub nampiasa ny fitaovana tsy dia vaovao antsoina hoe "gh". Nanapa-kevitra ny hanandrana izany aho, satria toa nampanantena izany. Ary tiako manokana ilay izy - Tena tiako ny hanao lahatsoratra momba izany!

Alohan'ny hanombohantsika anefa dia mila manazava teny maromaro hampiasaiko ato amin'ity lahatsoratra ity aho.

"GH" dia midika hoe "GitHub”. Eto ihany koa no niavian'ny anaran'ilay fitaovana, ka tsy azo afangaro amin'ny Git mihitsy. Mba hanazavana ny ataony amin'ny ankapobeny dia azonao atao ny mamorona, mifoka, mamafa, mijery repos; mamorona fangatahana misintona; sy ny maro hafa. Raha toa ka tsy mahita endri-javatra ianao nefa tsy te hiala amin'ny terminal, dia manome navigateur mifototra amin'ny lahatsoratra ihany koa izy io mba hijerena pejy ao amin'ny GitHub.

"CLI" dia midika hoe "Command Line Interface”. Io Terminal io (na ao amin'ny Windows, Command Prompt) dia iray amin'izy ireo. Raha misy “CLI” ampiana eo akaikin'ny anaran'ny fampiharana (“Git CLI” ho an'ity lahatsoratra ity), dia midika izany fa mandeha amin'ny terminal ihany ny fampiharana. Ary ny "Git CLI" amin'ity toe-javatra ity dia ny Git fantatsika. Tahaka ny baiko ataontsika commits na rebases.

GUI dia midika hoe "Graphical Uto be Interface” ary io no interface “hivezivezena”. Tsara kokoa ny milaza fa ny tontolo desktop amin'ny ankapobeny dia GUI.

Ny "key API" dia karazana tady/rakitra miafina ampiasainao hanamarinana ny serivisy. Tandremo fa mandingana ny authentication 2 factor sy ny sisa rehefa manamarina azy ianao. Ataovy azo antoka àry ny mitazona azy ireo ho azo antoka sy any amin'ny toerana tsy takatry ny saina amin'ny fomba hafa.

Voalohany indrindra, inona io fitaovana io? Ahoana ny fomba fitantanana ny asa ataontsika amin'ny alàlan'ny Git CLI?

"gh" dia azo raisina ho loharano misokatra (Source Code) fonosana mampiasa ny Git CLI tenany sy ny GitHub API mba hamitana zavatra. Raha ny marina, azonao atao mihitsy aza ny mampita paramètre amin'ny baiko Git ampiasainy! Hiditra amin'ireo aho any aoriana any.

Fametrahana sy fametrahana

Ataovy ao an-tsaina fa handeha amin'ny fametrahana aho mampiasa termux. Saingy ny fomba fiasa dia tokony hitovy amin'ny azonao atao amin'ny distro miorina amin'ny Debian - Ubuntu dia manana izany ao amin'ny repos ofisialy ohatra. Ho an'ny Windows, eny, mila CygWin na WSL ianao. ¯\_(ツ)_/¯

# Aleo apetraka aloha ilay fitaovana. Apetraho koa ny Git satria io no backend # ho an'ny gh. $ pkg install git gh -y # Avy eo alohan'ny zava-drehetra, mila manamarina isika. Izany dia hitahiry fanalahidin'ny API # vaovao ao amin'ny angon-drakitra an'ilay fitaovana ka tsy mila manamarina ny # indray ianao. Raha toa ka efa nametraka GITHUB_TOKEN ianao dia tsy mandeha izany ka atsaharo ny # azy aloha. :) $ gh auth login

Ankehitriny, alohan'ny hanohizantsika eto dia mila manamarika zavatra maromaro aho.

  • Voalohany indrindra, aza misafidy “GitHub Enterprise Server” raha tsy manana karazana GitHub mpampiantrano tena ianao.
  • Faharoa, ampiasao SSH fa tsy HTTPS raha ampidirinao ao amin'ny kaontinao GitHub ny fanalahidin'ny daholobe. Raha toa ka very ny fanalahidin'ny API ianao, farafaharatsiny dia tsy ho very ny lakilen'ny SSH anao ka mety ho fomba fiady tsara ihany koa.
  • Fahatelo, safidio ny fidirana amin'ny navigateur raha tsy manana lakile API eo am-pelatananao! Raha ny marina, tsy misy dikany ny manana fanalahidy hafa raha mbola manana iray ianao.

Rehefa vita ny fametrahana zavatra dia andao holazaina amin'ny Git CLI momba izany.

$ gh auth setup-git

Izany dia hanao ny fanamafisana Git CLI ilaina raha toa ka miditra ny reflexes anao ary mampiasa Git fa tsy GH.

Didy fototra sasany

Ankehitriny rehefa nanangana GH ianao, avelao aho hampianatra anao baiko fototra maromaro amin'ny fototry ny tantara.

Voalohany indrindra, andao atao hoe te hamorona fangatahana misintona amin'ny repo manifesana eo an-toerana ianao. Te-hanofana azy aloha ianao.

$ gh repo fork windowz414/platform_manifest ! efa misy ve ny windowz414/platform_manifest ? Te-hanao clone ny fork ve ianao? Eny Cloning amin'ny 'platform_manifest'... lavitra: Fanisana zavatra: 136, vita. lavitra: Manisa zavatra: 100% (136/136), vita. lavitra: Mampihena zavatra: 100% (81/81), vita. lavitra: Total 136 (delta 46), ampiasaina indray 89 (delta 12), fonosana-ampiasaina indray 0 Mandray zavatra: 100% (136/136), 30.70 KiB | 166.00 KiB/s, vita. Famahana delta: 100% (46/46), vita. Fanavaozana ny upstream Avy amin'ny github.com:windowz414/platform_manifest * [sampana vaovao] amyrom/rosie -> upstream/amyrom/rosie * [sampana vaovao] aosp-eleven -> upstream/aosp-eleven * [sampana vaovao] aosp-ten -> upstream/aosp-ten * [sampana vaovao] arrow-11.0 -> upstream/arrow-11.0 * [sampana vaovao] cm-14.1 -> upstream/cm-14.1 * [sampana vaovao] dot11 -> upstream/dot11 * [sampana vaovao ] e/os/v1-nougat -> upstream/e/os/v1-nougat * [sampana vaovao] fluid-11 -> upstream/fluid-11 * [sampana vaovao] fox_7.1 -> upstream/fox_7.1 * [sampana vaovao] hentai-rika -> upstream/hentai-rika * [sampana vaovao] ion-pie -> upstream/ion-pie * [sampana vaovao] lineage-15.1 -> upstream/lineage-15.1 * [sampana vaovao] firazanana -17.1 -> upstream/lineage-17.1 * [sampana vaovao] lineage-18.1 -> upstream/lineage-18.1 * [sampana vaovao] lineage-18.1_teos -> upstream/lineage-18.1_teos * [sampana vaovao] lineage-19.0 - > upstream/lineage-19.0 * [sampana vaovao] main -> upstream/main * [sampana vaovao] mkn-mr1 -> upstream/mkn-mr1 * [sampana vaovao] revengeos-r11.0 -> upstream/revengeos-r11.0. 1 * [sampana vaovao] stellar-S1 -> upstream/stellar-S11 * [sampana vaovao] teos-n -> upstream/teos-n * [sampana vaovao] weebprojekt-11 -> upstream/weebprojekt-XNUMX ✓ Cloned fork

Dia ndao atao hoe manana fikambanana mitokana ianao ho an'ny andrana ataonao antsoina hoe “wz414-labs”, izay mbola tsy novakianao tao amin'ny mombamomba anao manokana ary te-hi-clone ao dia sokafy ny fangatahana fisintonana avy eo. Te-hanao clone ny sampana “cm-14.1” koa ianao ka tsy mila manao git-checkout amin'io indray ianao.

$ gh repo fork windowz414/platform_manifest --org="wz414-labs" -- --branch="cm-14.1" ✓ Fork fork wz414-labs/platform_manifest ? Te-hanao clone ny fork ve ianao? Eny Cloning amin'ny 'platform_manifest'... lavitra: Fanisana zavatra: 136, vita. lavitra: Manisa zavatra: 100% (136/136), vita. lavitra: Mampihena zavatra: 100% (81/81), vita. lavitra: Total 136 (delta 46), ampiasaina indray 89 (delta 12), fonosana-ampiasaina indray 0 Mandray zavatra: 100% (136/136), 30.70 KiB | 120.00 KiB/s, vita. Famahana delta: 100% (46/46), vita. Fanavaozana ny upstream Avy amin'ny github.com:windowz414/platform_manifest * [sampana vaovao] amyrom/rosie -> upstream/amyrom/rosie * [sampana vaovao] aosp-eleven -> upstream/aosp-eleven * [sampana vaovao] aosp-ten -> upstream/aosp-ten * [sampana vaovao] arrow-11.0 -> upstream/arrow-11.0 * [sampana vaovao] cm-14.1 -> upstream/cm-14.1 * [sampana vaovao] dot11 -> upstream/dot11 * [sampana vaovao ] e/os/v1-nougat -> upstream/e/os/v1-nougat * [sampana vaovao] fluid-11 -> upstream/fluid-11 * [sampana vaovao] fox_7.1 -> upstream/fox_7.1 * [sampana vaovao] hentai-rika -> upstream/hentai-rika * [sampana vaovao] ion-pie -> upstream/ion-pie * [sampana vaovao] lineage-15.1 -> upstream/lineage-15.1 * [sampana vaovao] firazanana -17.1 -> upstream/lineage-17.1 * [sampana vaovao] lineage-18.1 -> upstream/lineage-18.1 * [sampana vaovao] lineage-18.1_teos -> upstream/lineage-18.1_teos * [sampana vaovao] lineage-19.0 - > upstream/lineage-19.0 * [sampana vaovao] main -> upstream/main * [sampana vaovao] mkn-mr1 -> upstream/mkn-mr1 * [sampana vaovao] revengeos-r11.0 -> upstream/revengeos-r11.0. 1 * [sampana vaovao] stellar-S1 -> upstream/stellar-S11 * [sampana vaovao] teos-n -> upstream/teos-n * [sampana vaovao] weebprojekt-11 -> upstream/weebprojekt-XNUMX ✓ Cloned fork

Hitanao fa tsy nampiasa "-b cm-14.1" aho ary nanao ny adihevitra lava. Hatramin'ny datin'ity lahatsoratra ity, Febroary 16, 2022, GH dia manana bug izay tsy mampita hevitra fohy amin'ny Git CLI araka ny tokony ho izy ary noho izany dia mila atao toy ny adihevitra lava.

Rehefa vita izany dia niditra tsy tapaka tao amin'ny lahatahiry ianao, nanao ny fanovana nataonao, dia nanosika azy, ary vonona ny hanao fangatahana. Ho an'ity dia tsotra fotsiny no ilainao

$ gh pr mamorona --branch="cm-14.1" Mamorona fangatahana misintona ho an'ny wz414-labs:cm-14.1 ho cm-14.1 ao amin'ny windowz414/platform_manifest ? Title teos: Miova ho Git-Polycule ? -kevi-pitantanana ? Inona ny manaraka? Alefaso https://github.com/windowz414/platform_manifest/pull/1

Raha tsy ampidirinao ny “–branch=cm-14.1”, dia hamorona PR mankany amin'ny sampana “main” ianao, izay mazava ho azy fa hiteraka olana rehefa tsy voakarakara tsara.

Ary ankehitriny, mila manambatra ity PR ity aho, sa tsy izany? Noho izany aho aloha dia clone ny repo, checkout amin'ny sampana voatendry, ary lisitra PRs aloha.

# Cloning aloha. $ git clone https://github.com/windowz414/platform_manifest Cloning ao amin'ny 'platform_manifest'... lavitra: fanisana zavatra: 136, vita. lavitra: Manisa zavatra: 100% (136/136), vita. lavitra: Mampihena zavatra: 100% (81/81), vita. lavitra: Total 136 (delta 46), ampiasaina indray 89 (delta 12), fonosana-ampiasaina indray 0 Mandray zavatra: 100% (136/136), 30.70 KiB | 137.00 KiB/s, vita. Famahana delta: 100% (46/46), vita. # Avy eo mijery ny sampana. $ git checkout cm-14.1 sampana 'cm-14.1' napetraka hanara-maso ny 'fiaviana/cm-14.1'. Nivadika sampana vaovao 'cm-14.1' # Ary izao mitanisa PR. $ gh pr lisitra Asehoy ny 1 amin'ny 1 fangatahana fisintonana misokatra amin'ny windowz414/platform_manifest #1 teos: Ovay amin'ny Git-Polycule wz414-labs:cm-14.1

Hitantsika izao fa misy PR hanovana lavitr'ezaka ho “Git-Polycule”, andeha hojerentsika izay niova tamin'izany.

$ 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, 414 @@ 

Toa mampanantena! Fotoana hitambatra!

$gh pr merge 1 ? Inona no fomba fampivondronana tianao hampiasaina? Rebase sy mitambatra ? Inona ny manaraka? Alefaso ✓ Fangatahana fisintonana natambatra sy natambatra #1 (teos: Fiovana amin'ny Git-Polycule)

Rehefa nampitambatra azy aho dia afaka mamafa ny fork-nao ianao.

$ gh repo delete --confirm wz414-labs/platform_manifest ✓ Repository voafafa wz414-labs/platform_manifest

Hitanao fa nesorina avy hatrany ny repo tsy nisy fangatahana fanamafisana satria nandalo ny mari-pamantarana "–confirm" tao aho. Raha tsy mandalo izany ianao dia mahazo ity:

$ gh repo mamafa ny windowz414/systemd ? Type windowz414/systemd hanamafisana ny famafana:

Ary mila manoratra ny anarana repo manontolo ianao. Fandaniam-potoana…

famintinana

Raha tsorina, ny `gh` dia fonosana Git CLI/Curl tena tsotra izay mampiray ny asa Git tsotra sy ny zavatra GitHub API eo ambanin'ny tafo iray. Ahoana ny fampiasanao azy? Toa mampanantena anao tahaka ny ahy ve izany? Manantena ny hihaino anao!

Related Articles