GitHub mai sauƙin amfani da kayan aikin layin umarni: “gh”!

Idan kuna amfani da GitHub kuma kuna fifita layin umarni kamar ni don yin komai ba tare da wani rikitarwa akan GUI ba, wataƙila kun lura da yadda GitHub ya fara amfani da sabon kayan aikin su da ake kira "gh". Na yanke shawarar ba shi harbi, saboda ya ga alama bayan komai. Kuma ni kaina na son shi sosai - Don haka ina so in yi labarin game da shi!

Kafin mu fara ko da yake, ina buƙatar bayyana kalmomi da yawa da zan yi amfani da su a cikin wannan labarin.

"GH" yana nufin "GitHub". Wannan shine inda sunan kayan aikin shima ya samo asali, don haka ba za a iya ruɗe shi da Git kanta ba. Don bayyana abin da yake yi gabaɗaya, zaku iya ƙirƙira, cokali mai yatsa, gogewa, bincika wuraren ajiya; ƙirƙirar buƙatun ja; da sauran su. Idan ba za ku iya samun fasali ba amma kuma ba ku son barin tasha, yana kuma ba da mashigin rubutu don bincika shafuka a GitHub.

"CLI" yana nufin "Command Lm Ifa'ida". Wannan Terminal (ko a cikin Windows, Command Prompt) yana ɗaya daga cikinsu. Idan akwai “CLI” da aka makala kusa da sunan app (“Git CLI” na wannan labarin), yana nufin app ɗin yana gudana ta tasha kawai. Kuma "Git CLI" a cikin wannan mahallin shine, da kyau, Git da muka sani. Kamar umarnin da muke yin aikatawa ko sake ginawa da shi.

GUI yana nufin "Gm User Interface” kuma ita ce hanyar sadarwa da muke “ kewayawa” a kai. Mafi kyawun faɗi, yanayin tebur gabaɗaya shine GUI.

Maɓallin "API" wani nau'i ne na sirrin kirtani/fayil da kuke amfani da shi don tantancewa ga ayyuka. Yi hattara cewa yana ƙetare tantancewar abubuwa biyu da sauransu lokacin da kuka tabbatar da shi. Don haka tabbatar da kiyaye su da kuma wani wuri da ba za a iya isa ba ta wasu hanyoyi.

Da farko, menene wannan kayan aiki? Ta yaya yake gudanar da ayyukan da za mu yi ta hanyar Git CLI?

"gh" ana iya la'akari da shi azaman buɗaɗɗen tushe (source Code) wrapper ta amfani da Git CLI kanta da GitHub APIs don yin abubuwa. A zahiri, kuna iya ma wuce sigogi zuwa umarnin Git da yake amfani da shi! Zan shiga cikin wadanda a gaba.

Shigarwa da kafawa

Ka tuna cewa zan shiga ta hanyar shigarwa ta amfani da Tsoro. Amma tsarin yakamata ya kasance daidai da yadda zaku iya samu akan distro na tushen Debian - Ubuntu yana da shi akan wuraren ajiyar su na hukuma misali. Don Windows, da kyau, kuna buƙatar ko dai CygWin ko WSL Ina tsammanin. ¯\_(ツ) _/

# Bari mu fara shigar da kayan aikin. Hakanan shigar da Git kamar yadda shine bayan # don gh. $ pkg shigar git gh -y # Sannan kafin komai, muna buƙatar tantancewa. Wannan zai adana sabon maɓallin API # akan bayanan kayan aikin don haka ba kwa buƙatar sake tantancewa #. Idan kun riga kun saita GITHUB_TOKEN, wannan ba zai yi aiki ba har sai an saita # shi da farko. :) $gh auth login

Yanzu, kafin mu ci gaba a nan, ina buƙatar nuna abubuwa da yawa.

  • Da fari dai, kar a zabi “GitHub Enterprise Server” idan ba ku da wani nau'in GitHub mai sarrafa kansa.
  • Abu na biyu, yi amfani da SSH maimakon HTTPS idan an ƙara maɓallin jama'a akan asusun GitHub. Idan kun rasa maɓallin API, aƙalla ba za ku rasa maɓallin SSH ɗinku ba don haka zai iya zama kyakkyawar hanyar faɗuwa kuma.
  • Na uku, zaɓi shiga tare da mai lilo kawai idan ba ku da maɓallin API a hannu! Haƙiƙa, ba zai zama ma'ana ba don samun wani maɓalli yayin da kuke da ɗaya.

Da zarar kun gama saita abubuwa, bari mu gaya wa Git CLI game da shi.

$gh auth saitin-git

Wannan zai sanya madaidaicin daidaitawar Git CLI kawai idan abubuwan da kuke so su yi amfani da Git maimakon GH.

Wasu umarni na asali

Yanzu da kuka kafa GH, bari in koya muku mahimman umarni da yawa a cikin tushen labari.

Da farko, bari mu ce kana so ka ƙirƙiri buƙatun ja zuwa repo na gida na. Kuna so ku fara cokali mai yatsa.

$ gh repo cokali mai yatsa windowz414/platform_manifest ! windowz414/platform_manifest ya riga ya wanzu? Kuna so ku rufe cokali mai yatsa? Ee Cloning cikin 'platform_manifest'... nesa: Ƙididdiga abubuwa: 136, yi. nesa: Ƙididdiga abubuwa: 100% (136/136), yi. m: Abubuwan da ake matsawa: 100% (81/81), an yi. m: Jimlar 136 (delta 46), sake amfani da 89 (delta 12), fakitin sake amfani da shi 0 Karɓar abubuwa: 100% (136/136), 30.70 KiB | 166.00 KiB/s, yi. Magance deltas: 100% (46/46), an yi. Ana ɗaukakawa daga github.com:windowz414/platform_manifest * [sabon reshe] amyrom/rosie -> sama / amyrom / rosie * [sabon reshe] aosp- sha ɗaya -> sama / aosp- sha ɗaya * [sabon reshe] aosp-ten -> sama / aosp-ten * [sabon reshe] kibiya-11.0 -> sama / kibiya-11.0 * [sabon reshe] cm-14.1 -> sama / cm-14.1 * [sabon reshe] dot11 -> sama / digo 11 * [sabon reshe] ] e/os/v1-nougat -> sama / e/os/v1-nougat * [sabon reshe] ruwa-11 -> sama / ruwa-11 * [sabon reshe] fox_7.1 -> sama / fox_7.1 * [sabon reshe] hentai-rika -> sama / hentai-rika * [sabon reshe] ion-pie -> sama / ion-pie * [sabon reshe] lineage-15.1 -> sama / layi-15.1 * [sabon reshe] zuriya -17.1 -> sama / layi-17.1 * [sabon reshe] zuriya-18.1 -> sama / layi-18.1 * [sabon reshe] zuriya-18.1_teos -> sama / layi-18.1_teos * [sabon reshe] zuriya-19.0 - > upstream/lineage-19.0 * [sabon reshe] babba -> sama / babba * [sabon reshe] mkn-mr1 -> sama / mkn-mr1 * [sabon reshe] revengeos-r11.0 -> sama / revengeos-r11.0. 1 * [sabon reshe] stellar-S1 -> sama / stellar-S11 * [sabon reshe] teos-n -> sama / teos-n * [sabon reshe] weebprojekt-11 -> sama / weebprojekt-XNUMX ✓ Cloned cokali mai yatsa

Don haka bari mu ce kuna da wata ƙungiya ta daban don gwaje-gwajen ku da ake kira "wz414-labs", cewa ba ku yi cokali mai yatsa kan bayanan sirrinku ba tukuna kuma kuna son clone a can sannan ku buɗe buƙatar jawo ta wurin maimakon. Hakanan kuna son rufe reshen “cm-14.1” don haka ba kwa buƙatar sake yin git-checkout zuwa gare shi.

$ gh repo cokali mai yatsa windowz414/platform_manifest --org ="wz414-labs" -- --reshe ="cm-14.1" ✓ An ƙirƙira cokali mai yatsa wz414-labs/platform_manifest ? Kuna so ku rufe cokali mai yatsa? Ee Cloning cikin 'platform_manifest'... nesa: Ƙididdiga abubuwa: 136, yi. nesa: Ƙididdiga abubuwa: 100% (136/136), yi. m: Abubuwan da ake matsawa: 100% (81/81), an yi. m: Jimlar 136 (delta 46), sake amfani da 89 (delta 12), fakitin sake amfani da shi 0 Karɓar abubuwa: 100% (136/136), 30.70 KiB | 120.00 KiB/s, yi. Magance deltas: 100% (46/46), an yi. Ana ɗaukakawa daga github.com:windowz414/platform_manifest * [sabon reshe] amyrom/rosie -> sama / amyrom / rosie * [sabon reshe] aosp- sha ɗaya -> sama / aosp- sha ɗaya * [sabon reshe] aosp-ten -> sama / aosp-ten * [sabon reshe] kibiya-11.0 -> sama / kibiya-11.0 * [sabon reshe] cm-14.1 -> sama / cm-14.1 * [sabon reshe] dot11 -> sama / digo 11 * [sabon reshe] ] e/os/v1-nougat -> sama / e/os/v1-nougat * [sabon reshe] ruwa-11 -> sama / ruwa-11 * [sabon reshe] fox_7.1 -> sama / fox_7.1 * [sabon reshe] hentai-rika -> sama / hentai-rika * [sabon reshe] ion-pie -> sama / ion-pie * [sabon reshe] lineage-15.1 -> sama / layi-15.1 * [sabon reshe] zuriya -17.1 -> sama / layi-17.1 * [sabon reshe] zuriya-18.1 -> sama / layi-18.1 * [sabon reshe] zuriya-18.1_teos -> sama / layi-18.1_teos * [sabon reshe] zuriya-19.0 - > upstream/lineage-19.0 * [sabon reshe] babba -> sama / babba * [sabon reshe] mkn-mr1 -> sama / mkn-mr1 * [sabon reshe] revengeos-r11.0 -> sama / revengeos-r11.0. 1 * [sabon reshe] stellar-S1 -> sama / stellar-S11 * [sabon reshe] teos-n -> sama / teos-n * [sabon reshe] weebprojekt-11 -> sama / weebprojekt-XNUMX ✓ Cloned cokali mai yatsa

Kun ga ban yi amfani da “-b cm-14.1” ba kuma nayi doguwar gardama a maimakon haka. Tun daga ranar wannan labarin, Fabrairu 16, 2022, GH yana da kwaro cewa baya wuce gajerun muhawara zuwa Git CLI daidai kuma don haka yana buƙatar yin dogon muhawara maimakon.

Da zarar an yi haka, kun shigar da babban fayil akai-akai, kuyi canje-canjenku, ku himmatu sannan ku tura shi, kuma kuna shirye don yin buƙatun ja. Don wannan, duk abin da kuke buƙata shine mai sauƙi

$ gh pr ƙirƙirar --reshe ="cm-14.1" Ƙirƙirar buƙatun ja don wz414-labs: cm-14.1 zuwa cm-14.1 a cikin windowz414/platform_manifest ? Taken teos: Canja zuwa Git-Polycule? Jiki ? Menene na gaba? Aika https://github.com/windowz414/platform_manifest/pull/1

Idan ba ku sanya “–reshe=cm-14.1” ba, kuna ƙirƙirar PR zuwa reshen “babban”, wanda ba shakka zai haifar da matsala idan ba a sarrafa shi daidai ba.

Kuma yanzu, Ina buƙatar haɗa wannan PR, daidai? Don haka na fara rufe repo, dubawa zuwa reshe da aka sanya, sannan na fara jera PRs.

# Cloning farko. $ git clone https://github.com/windowz414/platform_manifest Cloning cikin 'platform_manifest'... nesa: Ƙididdiga abubuwa: 136, yi. nesa: Ƙididdiga abubuwa: 100% (136/136), yi. m: Abubuwan da ake matsawa: 100% (81/81), an yi. m: Jimlar 136 (delta 46), sake amfani da 89 (delta 12), fakitin da aka sake amfani da shi 0 Karɓar abubuwa: 100% (136/136), 30.70 KiB | 137.00 KiB/s, yi. Magance deltas: 100% (46/46), an yi. # Sannan duba zuwa reshe. $ git Checkout cm-14.1 reshe 'cm-14.1' wanda aka saita don bin 'asalin/cm-14.1'. Canja zuwa sabon reshe 'cm-14.1' # Kuma yanzu yana lissafin PRs. $ gh pr list Nuna 1 na 1 buɗaɗɗen buɗaɗɗen buƙatun a cikin windowz414/platform_manifest #1 teos: Canja zuwa Git-Polycule wz414-labs: cm-14.1

Yanzu da muka ga akwai PR don canza nesa zuwa “Git-Polycule”, bari mu ga abin da ya canza da shi.

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

Ga alama mai alƙawarin! Lokaci don haɗuwa!

$gh pr hade 1 ? Wace hanya ce ku ke son amfani da ita? Rebase da hade? Menene na gaba? Ƙaddamarwa ✓ Sake tushen buƙatun cirewa #1 (teos: Canja zuwa Git-Polycule)

Yanzu da na haɗa shi, za ku iya share cokali mai yatsa.

$ gh repo share --tabbatar wz414-labs/platform_manifest ✓ Wurin da aka goge

Kuna ganin cewa kai tsaye ya share repo ba tare da buƙatar tabbatarwa ba saboda na wuce ma'aunin “–confirm” a wurin. Idan ba za ku wuce ba, zaku sami wannan:

$ gh repo share windowz414/systemd? Buga windowz414/systemd don tabbatar da gogewa:

Kuma kuna buƙatar buga duk sunan repo. ɓata lokaci…

Summary

A taƙaice, `gh` kyakkyawa ce mai sauƙin sauƙaƙe Git CLI / Curl wrapper wanda ke haɓaka ayyukan Git mai sauƙi da abubuwan GitHub API a ƙarƙashin rufin guda. Ta yaya kuke amfani da shi? Yana kama da alkawari a gare ku kamar yadda yake a gare ni? Muna jiran ji daga gare ku!

shafi Articles