Хэрэв та GitHub-г ашиглаж байгаа бөгөөд над шиг командын мөрийг илүүд үзэж, GUI дээр ямар ч хүндрэлгүйгээр бүх зүйлийг гүйцэтгэхийг илүүд үзэж байгаа бол GitHub "gh" нэртэй шинэ хэрэглүүрээ хэрхэн ашиглаж эхэлснийг анзаарсан байх. Эцсийн эцэст энэ нь ирээдүйтэй харагдаж байсан тул би үүнийг туршиж үзэхээр шийдсэн. Би хувьдаа энэ нь маш их таалагдсан - Би энэ тухай нийтлэл хийхийг маш их хүссэн!
Эхлэхээсээ өмнө би энэ нийтлэлд ашиглах хэд хэдэн нэр томъёог тайлбарлах хэрэгтэй.
“GH” гэдэг нь “GitHub”. Энэ хэрэгслийн нэр нь мөн эндээс гаралтай тул Git-тэй андуурч болохгүй. Энэ нь юу хийдэгийг ерөнхийд нь тайлбарлахын тулд та репо үүсгэх, салаалах, устгах, үзэх боломжтой; татах хүсэлтийг үүсгэх; болон бусад олон. Хэрэв та функцийг олж чадаагүй ч терминалаас гарахыг хүсэхгүй байгаа бол GitHub дахь хуудсуудыг үзэх текстэд суурилсан хөтчөөр хангана.
“CLI” гэдэг нь “Cтүгээмэл Lсайн байна Iинтерфейс". Тэр Терминал (эсвэл Windows-д, Command Prompt) бол тэдгээрийн нэг юм. Хэрэв програмын нэрний хажууд "CLI" хавсаргасан байвал (энэ нийтлэлийн Git CLI) програм нь зөвхөн терминалаар ажилладаг гэсэн үг юм. Энэ утгаараа "Git CLI" бол бидний мэдэх Гит юм. Бидний амлалт эсвэл буцаах тушаалын нэгэн адил.
GUI нь "Gрафик Uбайх ёстой Interface” бөгөөд энэ нь бидний “завиглах” интерфейс юм. Ширээний орчин нь ерөнхийдөө GUI юм.
"API түлхүүр" нь таны үйлчилгээнд нэвтрэлтийг баталгаажуулахад ашигладаг нууц мөр/файл юм. Энэ нь таныг баталгаажуулахдаа 2 хүчин зүйлийн баталгаажуулалтыг давж гарахаас болгоомжил. Тиймээс тэднийг аюулгүй газар, өөр арга хэрэгслээр хүрэх боломжгүй газар байлгах хэрэгтэй.
Юуны өмнө энэ хэрэгсэл юу вэ? Энэ нь бидний Git CLI-ээр дамжуулан хийх үйлдлүүдийг хэрхэн зохицуулдаг вэ?
"gh"-г нээлттэй эх сурвалж гэж үзэж болно (Эх код) Git CLI өөрөө болон GitHub API-г ашиглан аливаа зүйлийг хийх боодол. Үнэн хэрэгтээ та түүний ашигладаг Git командууд руу параметр дамжуулж болно! Би эдгээрт дараа нь орох болно.
Суулгах, тохируулах
Би суулгацыг ашиглан явна гэдгийг санаарай Термукс. Гэхдээ энэ журам нь Debian-д суурилсан дистрибьютер дээрхтэй бараг ижил байх ёстой – жишээ нь Ubuntu-д үүнийг албан ёсны репо дээрээ суулгасан байдаг. Windows-ийн хувьд танд CygWin эсвэл WSL хэрэгтэй гэж бодож байна. ¯\_(ツ)_/¯
# Эхлээд багажаа суулгая. Мөн Git-г суулгаж байна, учир нь энэ нь gh-д зориулсан # backend юм. $ pkg install git gh -y # Дараа нь бүх зүйлийн өмнө бид баталгаажуулах хэрэгтэй. Энэ нь # шинэ API түлхүүрийг хэрэгслийн мэдээллийн санд хадгалах бөгөөд ингэснээр та дахин # баталгаажуулах шаардлагагүй болно. Хэрэв та GITHUB_TOKEN-г аль хэдийн тохируулсан бол эхлээд # үүнийг тохируулаагүй тохиолдолд ажиллахгүй. :) $ gh auth нэвтрэлт
Одоо бид энд үргэлжлүүлэхээсээ өмнө би хэд хэдэн зүйлийг онцлон тэмдэглэх хэрэгтэй.
- Нэгдүгээрт, "GitHub Enterprise Server"-ийг бүү сонго Хэрэв танд ямар нэгэн өөрөө зохион байгуулсан GitHub байхгүй бол.
- Хоёрдугаарт, Хэрэв та GitHub бүртгэл дээрээ нийтийн түлхүүрээ нэмсэн бол HTTPS-ийн оронд SSH-г ашиглаарай. Хэрэв та API түлхүүрээ алдсан тохиолдолд ядаж SSH түлхүүрээ алдахгүй тул энэ нь сайн нөхөх арга байж болох юм.
- Гуравдугаарт, хөтөч ашиглан нэвтрэхийг сонгоно уу Хэрэв танд API түлхүүр байхгүй бол л болно! Үнэхээр өөр түлхүүртэй байхад өөр түлхүүртэй байх нь утгагүй юм.
Та бүх зүйлийг тохируулж дууссаны дараа Git CLI-д энэ тухай хэлье.
$ gh auth setup-git
Энэ нь таны рефлексүүд нэвтэрч, GH-ийн оронд Git-г ашиглахад шаардлагатай Git CLI тохиргоог хийх болно.
Зарим үндсэн тушаалууд
Нэгэнт та GH-г тохируулсан тул би танд хэд хэдэн үндсэн тушаалуудыг үлгэрийн үндсэн дээр зааж өгье.
Юуны өмнө та миний орон нутгийн манифест репо руу татах хүсэлт үүсгэхийг хүсч байна гэж бодъё. Та эхлээд үүнийг сэрээмээр байна.
$ gh репо салаа windowz414/platform_manifest ! windowz414/platform_manifest аль хэдийн байна уу? Та сэрээг хувилахыг хүсч байна уу? Тиймээ 'platform_manifest' руу клон хийж байна... алсын зайнаас: Объектуудыг тоолж байна: 136, дууссан. алсын удирдлага: Объектуудыг тоолох: 100% (136/136), дууссан. алсын удирдлага: Объектуудыг шахаж байна: 100% (81/81), дууссан. алсын удирдлага: Нийт 136 (дельта 46), дахин ашигласан 89 (дельта 12), багцад дахин ашигласан 0 Хүлээн авах объект: 100% (136/136), 30.70 КБ | 166.00 киБ/с, дууссан. Дельта шийдвэрлэх: 100% (46/46), дууссан. Дээд урсгалыг шинэчилж байна github.com:windowz414/platform_manifest * [шинэ салбар] amyrom/rosie -> upstream/amyrom/rosie * [шинэ салбар] aosp-eleven -> upstream/aosp-eleven * [шинэ салбар] aosp-ten -> upstream/aosp-ten * [шинэ салбар] сум-11.0 -> дээш/сум-11.0 * [шинэ салбар] см-14.1 -> дээш/см-14.1 * [шинэ салбар] цэг11 -> дээш/цэг11 * [шинэ салбар ] e/os/v1-nougat -> upstream/e/os/v1-nougat * [шинэ салбар] шингэн-11 -> дээш/шингэн-11 * [шинэ салбар] fox_7.1 -> дээш/үнэг_7.1 * [шинэ салбар] hentai-rika -> дээд тал/hentai-rika * [шинэ салбар] ион-бялуу -> дээд урсгал/ион-бялуу * [шинэ салбар] удам угсаа-15.1 -> дээд урсгал/удам-15.1 * [шинэ салбар] удам угсаа -17.1 -> дээд/удам-17.1 * [шинэ салаа] удам-18.1 -> дээд тал/удам-18.1 * [шинэ салбар] удам-18.1_teos -> дээш/удам-18.1_teos * [шинэ салбар] удам-19.0 - > upstream/lineage-19.0 * [шинэ салбар] гол -> дээд/гол * [шинэ салбар] mkn-mr1 -> дээш/mkn-mr1 * [шинэ салбар] revengeos-r11.0 -> дээд/revengeos-r11.0. 1 * [шинэ салбар] stellar-S1 -> дээд урсгал/од-S11 * [шинэ салбар] teos-n -> дээш/teos-n * [шинэ салбар] weebprojekt-11 -> дээд урсгал/weebprojekt-XNUMX ✓ Клон салаа
Дараа нь танд "wz414-labs" нэртэй туршилт хийх тусдаа байгууллага байгаа гэж бодъё, та хувийн профайлаа хараахан оруулаагүй байгаа бөгөөд тэнд хувилахыг хүсч, тэндээс татах хүсэлтийг нээнэ үү. Та мөн "cm-14.1" салбарыг хувилахыг хүсч байгаа тул дахин git-checkout хийх шаардлагагүй болно.
$ gh repo fork windowz414/platform_manifest --org="wz414-labs" -- --branch="cm-14.1" ✓ үүсгэсэн салаа wz414-labs/platform_manifest ? Та сэрээг хувилахыг хүсч байна уу? Тиймээ 'platform_manifest' руу клон хийж байна... алсын зайнаас: Объектуудыг тоолж байна: 136, дууссан. алсын удирдлага: Объектуудыг тоолох: 100% (136/136), дууссан. алсын удирдлага: Объектуудыг шахаж байна: 100% (81/81), дууссан. алсын удирдлага: Нийт 136 (дельта 46), дахин ашигласан 89 (дельта 12), багцад дахин ашигласан 0 Хүлээн авах объект: 100% (136/136), 30.70 КБ | 120.00 киБ/с, дууссан. Дельта шийдвэрлэх: 100% (46/46), дууссан. Дээд урсгалыг шинэчилж байна github.com:windowz414/platform_manifest * [шинэ салбар] amyrom/rosie -> upstream/amyrom/rosie * [шинэ салбар] aosp-eleven -> upstream/aosp-eleven * [шинэ салбар] aosp-ten -> upstream/aosp-ten * [шинэ салбар] сум-11.0 -> дээш/сум-11.0 * [шинэ салбар] см-14.1 -> дээш/см-14.1 * [шинэ салбар] цэг11 -> дээш/цэг11 * [шинэ салбар ] e/os/v1-nougat -> upstream/e/os/v1-nougat * [шинэ салбар] шингэн-11 -> дээш/шингэн-11 * [шинэ салбар] fox_7.1 -> дээш/үнэг_7.1 * [шинэ салбар] hentai-rika -> дээд тал/hentai-rika * [шинэ салбар] ион-бялуу -> дээд урсгал/ион-бялуу * [шинэ салбар] удам угсаа-15.1 -> дээд урсгал/удам-15.1 * [шинэ салбар] удам угсаа -17.1 -> дээд/удам-17.1 * [шинэ салаа] удам-18.1 -> дээд тал/удам-18.1 * [шинэ салбар] удам-18.1_teos -> дээш/удам-18.1_teos * [шинэ салбар] удам-19.0 - > upstream/lineage-19.0 * [шинэ салбар] гол -> дээд/гол * [шинэ салбар] mkn-mr1 -> дээш/mkn-mr1 * [шинэ салбар] revengeos-r11.0 -> дээд/revengeos-r11.0. 1 * [шинэ салбар] stellar-S1 -> дээд урсгал/од-S11 * [шинэ салбар] teos-n -> дээш/teos-n * [шинэ салбар] weebprojekt-11 -> дээд урсгал/weebprojekt-XNUMX ✓ Клон салаа
Би "-b cm-14.1"-ийг ашиглаагүй бөгөөд оронд нь урт аргумент хийсэн гэдгийг та харж байна. Энэ нийтлэлийн огноо буюу 16 оны 2022-р сарын XNUMX-ны байдлаар GH нь Git CLI-д богино аргументуудыг зөв дамжуулдаггүй алдаатай тул оронд нь урт аргументуудыг хийх шаардлагатай байна.
Үүнийг хийсний дараа та хавтас руу тогтмол орж, өөрчлөлтөө хийж, дараа нь түлхэж, татах хүсэлтийг хийхэд бэлэн боллоо. Үүний тулд танд энгийн зүйл л хангалттай
$ gh pr create --branch="cm-14.1" wz414-labs:cm-14.1-д зориулсан татах хүсэлтийг windowz14.1/platform_manifest дээр cm-414 рүү үүсгэж байна уу? Гарчиг teos: Git-Polycule болгон өөрчлөх үү? Бие ? Дараа нь юу юм? https://github.com/windowz414/platform_manifest/pull/1 оруулах
Хэрэв та “–салбар=см-14.1” гэж нэмэхгүй бол “үндсэн” салбар руу чиглэсэн PR-ыг бий болгож байгаа бөгөөд энэ нь мэдээжийн хэрэг зөв зохицуулаагүй тохиолдолд асуудал үүсгэх болно.
Одоо би энэ PR-ыг нэгтгэх хэрэгтэй байна, тийм үү? Тиймээс би эхлээд репо хувилж, томилогдсон салбар руу тооцоо хийж, эхлээд PR-уудыг жагсаана.
# Эхлээд хувилах. $ git clone https://github.com/windowz414/platform_manifest 'platform_manifest' болгон хувилах... алсын зайнаас: Объектуудыг тоолж байна: 136, дууссан. алсын удирдлага: Объектуудыг тоолох: 100% (136/136), дууссан. алсын удирдлага: Объектуудыг шахаж байна: 100% (81/81), дууссан. алсын удирдлага: Нийт 136 (дельта 46), дахин ашигласан 89 (дельта 12), багцад дахин ашигласан 0 Хүлээн авах объект: 100% (136/136), 30.70 КБ | 137.00 киБ/с, дууссан. Дельта шийдвэрлэх: 100% (46/46), дууссан. # Дараа нь салбар руугаа гарна. $ git checkout cm-14.1 салбар 'cm-14.1' нь 'origin/cm-14.1'-г хянахаар тохируулсан. 'cm-14.1' шинэ салбар руу шилжсэн # Тэгээд одоо PR-уудыг жагсааж байна. $ gh pr list windowz1/platform_manifest №1 teos дээр нээлттэй татах хүсэлтийн 414-ийг харуулж байна: Git-Polycule wz1-labs:cm-414 болгон өөрчлөх
Одоо бид алсын удирдлагатай "Git-Polycule" болгон өөрчлөх PR байгааг олж хараад үүнтэй юу өөрчлөгдсөнийг харцгаая.
$ gh pr ялгаа 1 ялгаа --git a/teos.xml b/teos.xml индекс b145fc0..3aadeb6 100644 --- a/teos.xml +++ b/teos.xml @@ -2,7 +2,7, 414 @@
Ирээдүйтэй юм шиг байна! Нэгдэх цаг!
$ gh pr нэгтгэх 1 ? Та ямар нэгдэх аргыг ашиглахыг хүсч байна вэ? Дахин суурьлаж, нэгтгэх үү? Дараа нь юу юм? Илгээх ✓ Дахин үндэслэсэн, нэгтгэсэн татах хүсэлт №1 (teos: Git-Polycule болгон өөрчлөх)
Би үүнийг нэгтгэсэн тул та сэрээгээ устгаж болно.
$ gh репо устгах --confirm wz414-labs/platform_manifest ✓ Устгасан репозитор wz414-labs/platform_manifest
Би тэнд “-баталгаажуулах” параметрийг дамжуулсан тул баталгаажуулах хүсэлтгүйгээр репо шууд устгасан гэдгийг та харж байна. Хэрэв та үүнийг давж чадаагүй бол дараахь зүйлийг авах болно.
$ gh repo windowz414/systemd устгах уу? Устгахыг баталгаажуулахын тулд windowz414/systemd гэж бичнэ үү:
Мөн та репо нэрийг бүхэлд нь бичих хэрэгтэй болно. Цагийн дэмий…
Дүгнэлт
Энгийнээр хэлбэл, `gh` нь энгийн Git үйлдлүүд болон GitHub API-г нэг дээвэр дор нэгтгэдэг нэлээн хялбаршуулсан Git CLI/Curl боодол юм. Та үүнийг хэрхэн ашигладаг вэ? Надтай адил танд ирээдүйтэй харагдаж байна уу? Таныг сонсохыг тэсэн ядан хүлээж байна!