Ọ bụrụ na ị na-eji GitHub ma na-ahọrọ ahịrị iwu dị ka m ka emee ihe niile na-enweghị nsogbu ọ bụla na GUI, ị nwere ike chọpụtala ka GitHub siri malite iji ngwa ha na-abụghị nke ọhụrụ akpọrọ "gh". Ekpebiri m ịgbanye ya, n'ihi na ọ dị ka ihe na-ekwe nkwa. Na m nwere mmasị na ya nke ukwuu - nke ukwuu na m chọrọ ime otu isiokwu banyere ya!
Tupu anyị amalite, ọ dị m mkpa ịkọwa ọtụtụ okwu m ga-eji n'isiokwu a.
"GH" pụtara "GitHub". Nke a bụ ebe aha ngwaọrụ ahụ sikwa, yabụ enweghị ike ịgbagha ya na Git n'onwe ya. Iji kọwaa ihe ọ na-eme n'ozuzu, ị nwere ike ịmepụta, ndụdụ, ihichapụ, chọgharịa repos; mepụta arịrịọ ịdọrọ; na ọtụtụ ndị ọzọ. Ọ bụrụ na ịnweghị ike ịchọta atụmatụ mana ịchọghị ịhapụ njedebe, ọ na-enyekwa gị ihe nchọgharị dabere na ederede ka ị chọgharịa ibe na GitHub.
"CLI" pụtara "Command Line Iinterface". Terminal ahụ (ma ọ bụ na Windows, Command Prompt) bụ otu n'ime ha. Ọ bụrụ na enwere “CLI” agbakwunyere n'akụkụ aha ngwa (“Git CLI” maka edemede a), ọ pụtara na ngwa ahụ na-aga site na njedebe naanị. Na "Git CLI" na ọnọdụ a bụ, nke ọma, Git anyị maara. Dị ka iwu anyị na-eme ma ọ bụ rebase na.
GUI na-anọchi anya "Graphical User Interface" na ọ bụ interface anyị na-agagharị. Nke ka mma, gburugburu desktọpụ n'ozuzu bụ GUI.
Otu “igodo API” bụ ụfọdụ ụdị eriri/faịlụ nzuzo ị na-eji chọpụta na ọrụ. Kpachara anya na ọ na-agafe nyocha ihe abụọ na ihe ndị ọzọ mgbe ị jiri ya nyochaa ya. Yabụ jide n'aka na ị ga-echekwa ha yana ebe a na-agaghị enweta ya site n'ụzọ ndị ọzọ.
Nke mbụ, gịnị bụ ngwá ọrụ a? Kedu ka o si ejikwa ọrụ anyị ga-eme site na Git CLI?
Enwere ike iwere "gh" dị ka ebe mepere emepe (isi iyi Usoro) ihe mkpuchi na-eji Git CLI n'onwe ya na GitHub API iji mee ihe. N'ezie, ị nwere ike ịnyefe paramita na iwu Git ọ na-eji! Aga m abanye na ndị ahụ ma emechaa.
Ịwụnye na nhazi
Buru n'uche na m ga-eji nrụnye gafere Mujọ. Mana usoro ahụ kwesịrị ịdị mma nke ukwuu dịka ị nwere ike ịnwe na distro dabere na Debian - Ubuntu nwere ya na ebe nchekwa ha dịka ọmụmaatụ. Maka Windows, ọ dị mma, ịchọrọ CygWin ma ọ bụ WSL echere m. ¯\_(ツ) _/ ¯
# Ka anyị buru ụzọ tinye ngwa ahụ. Na-etinyekwa Git ka ọ bụ azụ azụ # maka gh. $ pkg wụnye git gh -y # Mgbe ahụ tupu ihe niile, anyị kwesịrị ịchọpụta. Nke a ga-echekwa igodo API # ọhụrụ na nchekwa data ngwaọrụ ka ị ghara ịchọ nyocha # ọzọ. Ọ bụrụ na ịtọọla GITHUB_TOKEN, nke a agaghị arụ ọrụ nke ewepụrụ # ya mbụ. :) $gh auth nbanye
Ugbu a, tupu anyị aga n'ihu ebe a, ọ dị m mkpa ịkọwapụta ọtụtụ ihe.
- Firstly, ahọrọla “GitHub Enterprise Server” ọ bụrụ na ị nweghị ụdị GitHub kwadoro onwe ya.
- Nke abuo, jiri SSH kama HTTPS ma ọ bụrụ na ị gbakwunyere igodo ọha gị na akaụntụ GitHub gị. Ọ bụrụ na ị tufuo igodo API, ọ dịkarịa ala, ị gaghị atụfu igodo SSH gị ka ọ bụrụkwa usoro ọdịda dị mma.
- Nke atọ, họrọ iji ihe nchọgharị wee banye naanị ma ọ bụrụ na ịnweghị igodo API n'aka! N'ezie, ọ gaghị abụ ihe ezi uche dị na ya ịnwe igodo ọzọ mgbe ị nwere otu.
Ozugbo ịmechara ịhazi ihe, ka anyị gwa Git CLI maka ya.
$gh auth nhazi-git
Nke a ga-eme ka nhazi Git CLI dị mkpa naanị ma ọ bụrụ na reflexes na-abanye ma mee ka ị jiri Git kama GH.
Ụfọdụ iwu ndị bụ isi
Ugbu a ị melitela GH, ka m kuziere gị ọtụtụ iwu bụ isi na ndabere akụkọ.
Nke mbụ, ka anyị kwuo na ịchọrọ ịmepụta arịrịọ maka ihe ngosi mpaghara m repo. Ịchọrọ ibu ụzọ kpoo ya.
$ gh repo ndụdụ windowz414/platform_manifest! windowz414/platform_manifest adịlarị? Ọ ga-amasị gị imechi ndụdụ ahụ? Ee Cloning n'ime 'platform_manifest'... remote: Na-agụta ihe: 136, emechara. remote: Agụ ihe: 100% (136/136), mere. ime obodo: Ihe na-emekọ ihe: 100% (81/81), emela ya. nke dịpụrụ adịpụ: ngụkọta 136 (delta 46), ejiri 89 (delta 12), mkpọ-ejigharị 0 Ihe na-anata: 100% (136/136), 30.70 KiB | 166.00 KiB/s, emechara. Na-edozi deltas: 100% (46/46), emela ya. Na-emelite elu site na github.com:windowz414/platform_manifest * [alaka ọhụrụ] amyrom/rosie -> elu / amyrom / rosie * [alaka ọhụrụ] aosp-eleven -> elu / aosp-iri na otu * [alaka ọhụrụ] aosp-ten -> elu / aosp-iri * [alaka ọhụrụ] arrow-11.0 -> elu / arrow-11.0 * [alaka ụlọ ọrụ ọhụrụ] cm-14.1 -> elu / cm-14.1 * [alaka ụlọ ọrụ ọhụrụ] dot11 -> elu / dot11 * [alaka ụlọ ọrụ ọhụrụ] ] e/os/v1-nougat -> upstream/e/os/v1-nougat * [alaka ọhụrụ] mmiri-11 -> elu / mmiri-11 * [alaka ọhụrụ] fox_7.1 -> elu / fox_7.1 * [alaka ọhụrụ] hentai-rika -> elu / hentai-rika * [ alaka ọhụrụ ] ion-pie -> elu / ion-pie * [alaka ọhụrụ] lineage-15.1 -> elu / lineage-15.1 * [alaka ọhụrụ] usoro ọmụmụ -17.1 -> elu / lineage-17.1 * [alaka ọhụrụ] lineage-18.1 -> upstream / lineage-18.1 * [alaka ọhụrụ] lineage-18.1_teos -> elu / lineage-18.1_teos * [alaka ọhụrụ] usoro-19.0 - > elu / lineage-19.0 * [alaka ọhụrụ] isi -> elu / isi * [alaka ọhụrụ] mkn-mr1 -> elu / mkn-mr1 * [alaka ọhụrụ] revengeos-r11.0 -> elu / revengeos-r11.0. 1 * [alaka ọhụrụ] stellar-S1 -> elu / stellar-S11 * [alaka ọhụrụ] teos-n -> elu / teos-n * [alaka ọhụrụ] weebprojekt-11 -> elu / weebprojekt-XNUMX ✓ ndụdụ na-ekpuchi anya
Mgbe ahụ, ka anyị kwuo na ị nwere nzukọ dị iche maka nnwale gị akpọrọ “wz414-labs”, na ị nwetabeghị profaịlụ nkeonwe gị ma chọọ ịmegharị ebe ahụ wee mepee arịrịọ dọpụta ebe ahụ kama. Ịchọrọ imechi ngalaba "cm-14.1" ka ị ghara ime git-checkout na ya ọzọ.
$ gh repo ndụdụ windowz414/platform_manifest --org ="wz414-labs" -- --alaka ="cm-14.1" ✓ Mepụtara ndụdụ wz414-labs/platform_manifest ? Ọ ga-amasị gị imechi ndụdụ ahụ? Ee Cloning n'ime 'platform_manifest'... remote: Na-agụta ihe: 136, emechara. remote: Agụ ihe: 100% (136/136), mere. ime obodo: Ihe na-emekọ ihe: 100% (81/81), emela ya. nke dịpụrụ adịpụ: ngụkọta 136 (delta 46), ejiri 89 (delta 12), mkpọ-ejigharị 0 Ihe na-anata: 100% (136/136), 30.70 KiB | 120.00 KiB/s, emechara. Na-edozi deltas: 100% (46/46), emela ya. Na-emelite elu site na github.com:windowz414/platform_manifest * [alaka ọhụrụ] amyrom/rosie -> elu / amyrom / rosie * [alaka ọhụrụ] aosp-eleven -> elu / aosp-iri na otu * [alaka ọhụrụ] aosp-ten -> elu / aosp-iri * [alaka ọhụrụ] arrow-11.0 -> elu / arrow-11.0 * [alaka ụlọ ọrụ ọhụrụ] cm-14.1 -> elu / cm-14.1 * [alaka ụlọ ọrụ ọhụrụ] dot11 -> elu / dot11 * [alaka ụlọ ọrụ ọhụrụ] ] e/os/v1-nougat -> upstream/e/os/v1-nougat * [alaka ọhụrụ] mmiri-11 -> elu / mmiri-11 * [alaka ọhụrụ] fox_7.1 -> elu / fox_7.1 * [alaka ọhụrụ] hentai-rika -> elu / hentai-rika * [ alaka ọhụrụ ] ion-pie -> elu / ion-pie * [alaka ọhụrụ] lineage-15.1 -> elu / lineage-15.1 * [alaka ọhụrụ] usoro ọmụmụ -17.1 -> elu / lineage-17.1 * [alaka ọhụrụ] lineage-18.1 -> upstream / lineage-18.1 * [alaka ọhụrụ] lineage-18.1_teos -> elu / lineage-18.1_teos * [alaka ọhụrụ] usoro-19.0 - > elu / lineage-19.0 * [alaka ọhụrụ] isi -> elu / isi * [alaka ọhụrụ] mkn-mr1 -> elu / mkn-mr1 * [alaka ọhụrụ] revengeos-r11.0 -> elu / revengeos-r11.0. 1 * [alaka ọhụrụ] stellar-S1 -> elu / stellar-S11 * [alaka ọhụrụ] teos-n -> elu / teos-n * [alaka ọhụrụ] weebprojekt-11 -> elu / weebprojekt-XNUMX ✓ ndụdụ na-ekpuchi anya
Ị hụrụ na ejighị m “-b cm-14.1” mee ogologo arụmụka kama. Dịka ụbọchị nke edemede a, Febụwarị 16, 2022, GH nwere ahụhụ na ọ naghị enyefe obere arụmụka Git CLI n'ụzọ ziri ezi na ya mere ọ kwesịrị ime ka ogologo arụmụka kama.
Ozugbo emechara nke ahụ, ị na-abanye na folda mgbe niile, mee mgbanwe gị, tinye aka wee kwagide ya, wee dị njikere ime arịrịọ ndọpụta. Maka nke a, ihe niile ị chọrọ bụ ihe dị mfe
$ gh pr mepụta --alaka ="cm-14.1" Ịmepụta arịrịọ maka wz414-labs:cm-14.1 n'ime cm-14.1 na windowz414/platform_manifest ? Aha teos: Gbanwee Git-Polycule? Ahụ ? Gịnị na-esote? Nyefee https://github.com/windowz414/platform_manifest/pull/1
Ọ bụrụ na itinyeghị “–alaka = cm-14.1”, ị ga-eke PR kwupụta alaka “isi”, nke ga-ebute nsogbu ma ọ bụrụ na edozighi ya nke ọma.
Ma ugbu a, achọrọ m ijikọ PR a, nri? Ya mere, m na-ebu ụzọ mechie repo, lelee alaka ụlọ ọrụ e kenyere, wee buru ụzọ depụta PRs.
# Cloning mbụ. $ git clone https://github.com/windowz414/platform_manifest Cloning n'ime 'platform_manifest'... remote: Na-agụta ihe: 136, mere. remote: Agụ ihe: 100% (136/136), mere. ime obodo: Ihe na-emekọ ihe: 100% (81/81), emela ya. nke dịpụrụ adịpụ: ngụkọta 136 (delta 46), ejiri 89 (delta 12), mkpọ-ejigharị 0 Ihe na-anata: 100% (136/136), 30.70 KiB | 137.00 KiB/s, emechara. Na-edozi deltas: 100% (46/46), emela ya. # Mgbe ahụ gaa na ngalaba ụlọ ọrụ. $ git ndenye ego cm-14.1 alaka 'cm-14.1' nke edobere ka o wee soro 'si mmalite/cm-14.1'. Gbanyere alaka ọhụrụ 'cm-14.1' # Ma ugbu a na-edepụta PRs. $ gh pr ndepụta Na-egosi 1 nke 1 oghe arịrịọ ịdọrọ na windowz414/platform_manifest #1 teos: Gbanwee na Git-Polycule wz414-labs:cm-14.1
Ugbu a anyị hụrụ na enwere PR iji gbanwee ebe dịpụrụ adịpụ gaa na "Git-Polycule", ka anyị hụ ihe jiri ya gbanwee.
$ 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 @@
Ọ dị ka ihe na-ekwe nkwa! Oge ijikọ!
$gh pr jikota 1 ? Kedu usoro njikọ ga-amasị gị iji? Weghachite ma jikọta? Gịnị na-esote? Nyefee ✓ Arịrịọ ndọghachi azụ jikọtara na ejikọta #1 (teos: Gbanwee na Git-Polycule)
Ugbu a m jikọtara ya, ị nwere ike ihichapụ ndụdụ gị.
$ gh repo hichapụ --kwenye wz414-labs/platform_manifest ✓ Ebe nchekwa ehichapụ wz414-labs/platform_manifest
Ị na-ahụ na ehichapụrụ repo ozugbo na-enweghị arịrịọ nkwenye n'ihi na m gafere oke "-confirm" ebe ahụ. Ọ bụrụ na ịgafeghị ya, ị ga-enweta nke a:
$ gh repo hichapụ windowz414/systemd ? Pịnye windowz414/systemd iji kwado nhichapụ:
Ị ga-achọkwa pịnye aha repo niile. igbu oge…
Summary
N'ikwu ya n'ụzọ dị mfe, 'gh' bụ ihe mkpuchi Git CLI/Curl dị mfe na-ejikọta ọrụ Git dị mfe yana ihe GitHub API n'okpuru otu ụlọ. Kedu otu esi eji ya? Ọ dị gị ka ọ na-ekwe m nkwa? Na-atụ anya ịnụ gị!