Upami anjeun parantos nganggo GitHub sareng langkung milih garis paréntah sapertos kuring pikeun ngalakukeun sadayana tanpa aya komplikasi dina GUI, anjeun panginten tiasa perhatikeun kumaha GitHub mimiti ngagunakeun alat anu henteu énggal-énggal disebut "gh". Kuring mutuskeun pikeun masihan eta shot, sabab kasampak ngajangjikeun sanggeus kabeh. Sareng kuring pribadi resep pisan - Janten kuring hoyong ngadamel tulisan ngeunaan éta!
Sateuacan urang ngawitan, kuring kedah ngajelaskeun sababaraha istilah anu kuring bakal dianggo dina tulisan ieu.
"GH" nangtung pikeun "GitHub". Ieu tempat nami alat ogé asalna, ku kituna henteu aya patalina sareng Git sorangan. Pikeun ngajelaskeun naon anu dilakukeun sacara umum, anjeun tiasa nyiptakeun, garpu, ngahapus, ngotéktak repos; nyieun requests tarikan; jeung loba deui. Upami anjeun teu tiasa mendakan fitur tapi ogé henteu hoyong ngantunkeun terminal, éta ogé nyayogikeun browser dumasar téks pikeun anjeun ngotéktak halaman di GitHub.
"CLI" nangtung pikeun "Cparéntah Line Ipanganteur". Éta Terminal (atanapi dina Windows, Command Prompt) mangrupikeun salah sahijina. Upami aya "CLI" nambihkeun di gigireun nami aplikasi ("Git CLI" kanggo tulisan ieu), hartosna aplikasi éta ngan ukur ngalangkungan terminal. Sareng "Git CLI" dina kontéks ieu, nya, Git anu urang terang. Kawas paréntah urang nyieun commits atanapi rebases kalawan.
GUI nangtung pikeun "Grapical Uaya Interface" sareng éta antarmuka anu kami "napigasi". Langkung saé, lingkungan desktop sacara umum nyaéta GUI.
"Konci API" nyaéta sababaraha jinis string/file rahasia anu anjeun anggo pikeun ngabuktoskeun kaaslianana kana jasa. Waspada yén éta ngalangkungan auténtikasi 2 faktor sareng saterasna nalika anjeun ngabuktoskeunana. Janten pastikeun pikeun ngajaga aranjeunna aman sareng di tempat anu teu tiasa dicapai ku cara sanés.
Anu mimiti, naon alat ieu? Kumaha éta nanganan operasi anu bakal urang laksanakeun ngaliwatan Git CLI?
"gh" tiasa dianggap salaku sumber terbuka (Kode sumber) wrapper ngamangpaatkeun Git CLI sorangan jeung API GitHub pikeun ngalakukeun hal. Kanyataanna, anjeun malah tiasa ngalebetkeun parameter kana paréntah Git anu dianggo! Kuring bakal asup kana éta engké.
Masang sareng nyetél
Émut yén kuring bakal ngaliwat pamasangan nganggo termux. Tapi prosedurna kedah sami sareng anu anjeun tiasa gaduh dina distro basis Debian - Ubuntu ngagaduhan kana repos resmina contona. Pikeun Windows, sumur, anjeun peryogi boh CygWin atanapi WSL Jigana. ¯\_(ツ)_/¯
# Hayu urang masang alatna heula. Ogé masang Git salaku éta backend # pikeun gh. $ pkg install git gh -y # Teras sateuacan sadayana, urang kedah ngabuktoskeun kaaslianana. Ieu bakal ngahemat # konci API anyar dina database alat jadi anjeun moal kudu auténtikasi # deui. Upami anjeun parantos nyetél GITHUB_TOKEN, ieu moal jalan janten hapus # heula. :) $ gh auth login
Ayeuna, sateuacan urang neraskeun ka dieu, kuring kedah nunjukkeun sababaraha hal.
- firstly, ulah milih "GitHub Enterprise Server" lamun teu boga sababaraha jenis timer hosted GitHub.
- Bréh, anggo SSH tinimbang HTTPS upami anjeun parantos nambihan konci umum dina akun GitHub anjeun. Upami anjeun leungit konci API, anjeun sahenteuna moal leungit konci SSH anjeun ku kituna tiasa janten metode mundur anu saé ogé.
- Katilu, pilih log in sareng browser ngan lamun teu boga konci API on leungeun! Nyaan, éta moal masuk akal pikeun gaduh konci sanés nalika anjeun parantos gaduh.
Sakali anjeun parantos nyetél, hayu urang wartosan Git CLI ngeunaan éta.
$ gh auth setup-git
Ieu bakal ngajantenkeun konfigurasi Git CLI anu diperyogikeun upami refleksnya anjeun asup sareng ngajantenkeun anjeun nganggo Git tibatan GH.
Sababaraha paréntah dasar
Ayeuna anjeun parantos nyetél GH, hayu atuh ngajarkeun anjeun sababaraha paréntah dasar dina dasar carita.
Anu mimiti, hayu urang sebutkeun anjeun hoyong ngadamel pamundut tarik ka repo manifest lokal kuring. Rék ngarérét heula.
$ gh repo garpu windowz414 / platform_manifest! windowz414/platform_manifest geus aya? Naha anjeun badé ngakloning garpu? Sumuhun Kloning kana 'platform_manifest' ... jauh: Enumerating objék: 136, rengse. jauh: objék cacah: 100% (136/136), rengse. jauh: Compressing objék: 100% (81/81), rengse. jauh: total 136 (délta 46), dipaké deui 89 (délta 12), pak-dipaké deui 0 objék narima: 100% (136/136), 30.70 KiB | 166.00 KiB / s, rengse. Ngabéréskeun délta: 100% (46/46), rengse. Ngamutahirkeun hulu Ti github.com:windowz414/platform_manifest * [cabang anyar] amyrom/rosie -> hulu/amyrom/rosie * [cabang anyar] aosp-sabelas -> hulu/aosp-sabelas * [cabang anyar] aosp-sapuluh -> hulu/aosp-sapuluh * [cabang anyar] panah-11.0 -> hulu/panah-11.0 * [cabang anyar] cm-14.1 -> hulu/cm-14.1 * [cabang anyar] dot11 -> hulu/dot11 * [cabang anyar ] e/os/v1-nougat -> hulu/e/os/v1-nougat * [cabang anyar] fluid-11 -> hulu/cairan-11 * [cabang anyar] fox_7.1 -> hulu/fox_7.1 * [cabang anyar] hentai-rika -> hulu/hentai-rika * [cabang anyar] ion-pie -> hulu/ion-pie * [cabang anyar] turunan-15.1 -> hulu/garis-15.1 * [cabang anyar] turunan -17.1 -> hulu/lineage-17.1 * [cabang anyar] lineage-18.1 -> hulu/lineage-18.1 * [cabang anyar] lineage-18.1_teos -> hulu/lineage-18.1_teos * [cabang anyar] lineage-19.0 - > hulu/garis-19.0 * [cabang anyar] utama -> hulu/utama * [cabang anyar] mkn-mr1 -> hulu/mkn-mr1 * [cabang anyar] revengeos-r11.0 -> hulu/revengeos-r11.0. 1 * [cabang anyar] stellar-S1 -> hulu/stellar-S11 * [cabang anyar] teos-n -> hulu/teos-n * [cabang anyar] weebprojekt-11 -> hulu/weebprojekt-XNUMX ✓ Garpu kloning
Teras anggap anjeun gaduh organisasi anu misah pikeun ékspérimén anjeun anu disebut "wz414-labs", yén anjeun henteu acan garpu dina profil pribadi anjeun sareng hoyong diklon di dinya teras buka pamundut tarik di dinya. Anjeun ogé hoyong clone cabang "cm-14.1" ku kituna anjeun henteu kedah ngalakukeun git-checkout deui.
$ gh repo garpu windowz414 / platform_manifest --org ="wz414-labs" -- --cabang ="cm-14.1" ✓ Dijieun garpu wz414-labs / platform_manifest? Naha anjeun badé ngakloning garpu? Sumuhun Kloning kana 'platform_manifest' ... jauh: Enumerating objék: 136, rengse. jauh: objék cacah: 100% (136/136), rengse. jauh: Compressing objék: 100% (81/81), rengse. jauh: total 136 (délta 46), dipaké deui 89 (délta 12), pak-dipaké deui 0 objék narima: 100% (136/136), 30.70 KiB | 120.00 KiB / s, rengse. Ngabéréskeun délta: 100% (46/46), rengse. Ngamutahirkeun hulu Ti github.com:windowz414/platform_manifest * [cabang anyar] amyrom/rosie -> hulu/amyrom/rosie * [cabang anyar] aosp-sabelas -> hulu/aosp-sabelas * [cabang anyar] aosp-sapuluh -> hulu/aosp-sapuluh * [cabang anyar] panah-11.0 -> hulu/panah-11.0 * [cabang anyar] cm-14.1 -> hulu/cm-14.1 * [cabang anyar] dot11 -> hulu/dot11 * [cabang anyar ] e/os/v1-nougat -> hulu/e/os/v1-nougat * [cabang anyar] fluid-11 -> hulu/cairan-11 * [cabang anyar] fox_7.1 -> hulu/fox_7.1 * [cabang anyar] hentai-rika -> hulu/hentai-rika * [cabang anyar] ion-pie -> hulu/ion-pie * [cabang anyar] turunan-15.1 -> hulu/garis-15.1 * [cabang anyar] turunan -17.1 -> hulu/lineage-17.1 * [cabang anyar] lineage-18.1 -> hulu/lineage-18.1 * [cabang anyar] lineage-18.1_teos -> hulu/lineage-18.1_teos * [cabang anyar] lineage-19.0 - > hulu/garis-19.0 * [cabang anyar] utama -> hulu/utama * [cabang anyar] mkn-mr1 -> hulu/mkn-mr1 * [cabang anyar] revengeos-r11.0 -> hulu/revengeos-r11.0. 1 * [cabang anyar] stellar-S1 -> hulu/stellar-S11 * [cabang anyar] teos-n -> hulu/teos-n * [cabang anyar] weebprojekt-11 -> hulu/weebprojekt-XNUMX ✓ Garpu kloning
Anjeun ningali kuring henteu nganggo "-b cm-14.1" sareng ngalakukeun argumen anu panjang. Nepi ka tanggal tulisan ieu, 16 Pebruari 2022, GH ngagaduhan bug yén éta henteu ngalebetkeun argumen pondok ka Git CLI kalayan leres sahingga kedah dilakukeun salaku argumen anu panjang.
Sakali rengse, anjeun rutin diasupkeun folder, ngalakukeun parobahan anjeun, komitmen lajeng kadorong eta, sarta siap ngalakukeun pamundut tarikan. Pikeun ieu, sadaya anu anjeun peryogikeun nyaéta saderhana
$ gh pr nyiptakeun --branch ="cm-14.1" Nyiptakeun pamundut tarik pikeun wz414-labs: cm-14.1 kana cm-14.1 dina windowz414/platform_manifest? Judul teos: Robah ka Git-Polycule ? Awak ? Naon salajengna? Kirimkeun https://github.com/windowz414/platform_manifest/pull/1
Upami anjeun henteu nambihan "–cabang = cm-14.1", anjeun bakal nyiptakeun PR nuju cabang "utama", anu tangtosna bakal nyababkeun masalah nalika henteu ditangani leres.
Sareng ayeuna, kuring kedah ngahijikeun PR ieu, leres? Ku kituna kuring mimiti clone repo nu, Checkout ka cabang ditugaskeun, sarta daptar PRs munggaran.
# Kloning heula. $ git clone https://github.com/windowz414/platform_manifest Kloning kana 'platform_manifest'... jauh: Enumerating objék: 136, rengse. jauh: objék cacah: 100% (136/136), rengse. jauh: Compressing objék: 100% (81/81), rengse. jauh: total 136 (délta 46), dipaké deui 89 (délta 12), pak-dipaké deui 0 objék narima: 100% (136/136), 30.70 KiB | 137.00 KiB/s, rengse. Ngabéréskeun délta: 100% (46/46), rengse. # Lajeng pariksa kaluar ka cabang. $ git Checkout cm-14.1 cabang 'cm-14.1' nyetél pikeun lagu 'asal / cm-14.1'. Pindah ka cabang anyar 'cm-14.1' # Sareng ayeuna daptar PR. Daptar $ gh pr Némbongkeun 1 tina 1 paménta tarik kabuka dina windowz414/platform_manifest #1 teos: Robah ka Git-Polycule wz414-labs:cm-14.1
Ayeuna urang ningali aya PR pikeun ngarobih jauh ka "Git-Polycule", hayu urang tingali naon anu parantos robih.
$ gh pr diff 1 diff --git a/teos.xml b/teos.xml indéks b145fc0..3aadeb6 100644 --- a/teos.xml +++ b/teos.xml @@ -2,7 +2,7, 414 @@
Sigana ngajangjikeun! Waktos ngahiji!
$gh pr ngahijikeun 1? Métode gabungan naon anu anjeun hoyong dianggo? Rebase sareng ngagabung? Naon salajengna? Kirimkeun ✓ Rebased sareng ngahijikeun pamundut tarik #1 (teos: Robah ka Git-Polycule)
Ayeuna kuring ngahijikeun éta, anjeun tiasa ngahapus garpu anjeun.
$ gh repo delete --confirm wz414-labs/platform_manifest ✓ Repository ngahapus wz414-labs/platform_manifest
Anjeun ningali yén langsung ngahapus repo kalayan henteu menta konfirmasi sabab kuring lulus parameter "-confirm" di dinya. Upami anjeun henteu lulus, anjeun bakal nampi ieu:
$ gh repo ngahapus windowz414/systemd? Ketik windowz414/systemd pikeun mastikeun ngahapus:
Sareng anjeun kedah ngetik sadayana nami repo. Runtah waktos…
singgetan
Kantun nempatkeun, `gh` mangrupikeun bungkus Git CLI / Curl anu saderhana anu ngahijikeun operasi Git saderhana sareng hal API GitHub dina hateup anu sami. Kumaha anjeun ngamangpaatkeunana? Naha éta katingalina ngajangjikeun ka anjeun sapertos ka kuring? Pilari maju ka ngadangu ti anjeun!