Ако сте користили ГитХуб и преферирали сте командну линију као ја да бисте све обавили без икаквих компликација на ГУИ-у, можда сте приметили како је ГитХуб почео да користи њихов не тако нови алат под називом „гх“. Одлучио сам да покушам, јер је ипак изгледало обећавајуће. И мени се лично много допало – толико да сам хтео да направим чланак о томе!
Пре него што почнемо, морам да објасним неколико термина које ћу користити у овом чланку.
„ГХ“ значи „GitHуб”. Одатле потиче и назив алатке, тако да се не може мешати са самим Гитом. Да бисте уопштено објаснили шта ради, можете да креирате, рачвате, бришете, прегледате репозиторије; креирајте захтеве за повлачење; и још много тога. У случају да не можете да пронађете функцију, али и не желите да напустите терминал, он такође пружа текстуални претраживач за прегледавање страница на ГитХуб-у.
„ЦЛИ“ значи „Cомманд LИне Iинтерфејс”. Тај терминал (или у Виндовс-у, командна линија) је један од њих. Ако је поред назива апликације додат „ЦЛИ“ („Гит ЦЛИ“ за овај чланак), то значи да апликација ради само преко терминала. А „Гит ЦЛИ“ у овом контексту је, па, Гит који познајемо. Као наредба са којом вршимо урезивање или ребазе.
ГУИ је скраћеница за „Gрафичан Uвидети Iнтерфаце“ и то је интерфејс по којем „крећемо“. Боље речено, десктоп окружење је генерално ГУИ.
„АПИ кључ“ је нека врста тајног низа/датотеке коју користите за аутентификацију услуга. Пазите да заобилази 2 фактора аутентификацију и тако даље када се аутентификујете са њим. Зато се побрините да их чувате на сигурном месту које је ван домашаја другим средствима.
Пре свега, шта је овај алат? Како се носи са операцијама које бисмо радили преко Гит ЦЛИ?
„гх“ се може сматрати отвореним кодом (Изворни код) омотач који користи сам Гит ЦЛИ и ГитХуб АПИ-је за обављање ствари. У ствари, можете чак проследити параметре Гит командама које користи! О њима ћу касније.
Инсталирање и подешавање
Имајте на уму да ћу проћи кроз инсталацију користећи Термук. Али процедура би требало да буде скоро иста као што бисте могли да имате на дистрибуцији заснованој на Дебиану – Убунту је, на пример, има у својим званичним репозиторијумима. За Виндовс, па, треба вам ЦигВин или ВСЛ, претпостављам. ¯\_(ツ)_/¯
# Хајде да прво инсталирамо алатку. Такође инсталирам Гит као позадину # за гх. $ пкг инсталл гит гх -и # Онда пре свега, морамо да се аутентификујемо. Ово ће сачувати # нови АПИ кључ у бази података алатке, тако да нећете морати поново да # аутентификујете. Ако сте већ подесили ГИТХУБ_ТОКЕН, ово неће функционисати па га прво поништите #. :) $ гх аутх логин
Сада, пре него што наставимо овде, морам да истакнем неколико ствари.
- Прво, не бирајте „ГитХуб Ентерприсе Сервер“ ако немате неку врсту ГитХуб-а који се самостално хостује.
- Друго, користите ССХ уместо ХТТПС ако имате свој јавни кључ додат на ГитХуб налог. У случају да изгубите АПИ кључ, барем нећете изгубити свој ССХ кључ, тако да то може бити и добар резервни метод.
- Треће, изаберите пријављивање помоћу претраживача само ако немате АПИ кључ при руци! Заиста, не би имало смисла имати други кључ док га већ имате.
Када завршите са подешавањем, хајде да кажемо Гит ЦЛИ о томе.
$ гх аутх сетуп-гит
Ово ће направити неопходне Гит ЦЛИ конфигурације само у случају да ваши рефлекси упадну и натерају вас да користите Гит уместо ГХ.
Неке основне команде
Сада када сте подесили ГХ, дозволите ми да вас научим неколико основних команди на бази приче.
Пре свега, рецимо да желите да креирате захтев за повлачење за мој локални репо манифеста. Прво желите да се рачвате.
$ гх репо форк виндовз414/платформ_манифест! виндовз414/платформ_манифест већ постоји? Да ли бисте желели да клонирате виљушку? Да Клонирање у 'платформ_манифест'... удаљено: Набрајање објеката: 136, готово. даљински: Бројање објеката: 100% (136/136), готово. даљински: Компресија објеката: 100% (81/81), готово. даљински: Укупно 136 (делта 46), поново коришћено 89 (делта 12), поново у паковању 0 Пријем објеката: 100% (136/136), 30.70 КиБ | 166.00 КиБ/с, урађено. Решавање делта: 100% (46/46), готово. Ажурирање узводно са гитхуб.цом:виндовз414/платформ_манифест * [нова грана] амиром/росие -> упстреам/амиром/росие * [нова грана] аосп-елевен -> упстреам/аосп-елевен * [нова грана] аосп-тен -> узводно/аосп-тен * [нова грана] стрелица-11.0 -> узводно/стрелица-11.0 * [нова грана] цм-14.1 -> узводно/цм-14.1 * [нова грана] тачка11 -> узводно/тачка11 * [нова грана ] е/ос/в1-ноугат -> упстреам/е/ос/в1-ноугат * [нова грана] флуид-11 -> упстреам/флуид-11 * [нова грана] фок_7.1 -> упстреам/фок_7.1 * [нова грана] хентаи-рика -> упстреам/хентаи-рика * [нова грана] ион-пие -> упстреам/ион-пие * [нова грана] линеаге-15.1 -> упстреам/линеаге-15.1 * [нова грана] линеаге -17.1 -> упстреам/лине-17.1 * [нова грана] линеаге-18.1 -> упстреам/лине-18.1 * [нова грана] линеаге-18.1_теос -> упстреам/линеаге-18.1_теос * [нова грана] линеаге-19.0 - > упстреам/линеаге-19.0 * [нова грана] маин -> упстреам/маин * [нова грана] мкн-мр1 -> упстреам/мкн-мр1 * [нова грана] ревенгеос-р11.0 -> упстреам/ревенгеос-р11.0. 1 * [нова грана] стеллар-С1 -> упстреам/стеллар-С11 * [нова грана] теос-н -> упстреам/теос-н * [нова грана] веебпројект-11 -> упстреам/веебпројект-XNUMX ✓ Клонирана виљушка
Онда рецимо да имате засебну организацију за своје експерименте која се зове „вз414-лабс“, коју још нисте отворили на свом личном профилу и желите да клонирате тамо, а затим отворите захтев за повлачење. Такође желите да клонирате грану „цм-14.1“ тако да нећете морати поново да вршите гит-цхецкоут.
$ гх репо форк виндовз414/платформ_манифест --орг="вз414-лабс" -- --бранцх="цм-14.1" ✓ Креиран форк вз414-лабс/платформ_манифест ? Да ли бисте желели да клонирате виљушку? Да Клонирање у 'платформ_манифест'... удаљено: Набрајање објеката: 136, готово. даљински: Бројање објеката: 100% (136/136), готово. даљински: Компресија објеката: 100% (81/81), готово. даљински: Укупно 136 (делта 46), поново коришћено 89 (делта 12), поново у паковању 0 Пријем објеката: 100% (136/136), 30.70 КиБ | 120.00 КиБ/с, готово. Решавање делта: 100% (46/46), готово. Ажурирање узводно са гитхуб.цом:виндовз414/платформ_манифест * [нова грана] амиром/росие -> упстреам/амиром/росие * [нова грана] аосп-елевен -> упстреам/аосп-елевен * [нова грана] аосп-тен -> узводно/аосп-тен * [нова грана] стрелица-11.0 -> узводно/стрелица-11.0 * [нова грана] цм-14.1 -> узводно/цм-14.1 * [нова грана] тачка11 -> узводно/тачка11 * [нова грана ] е/ос/в1-ноугат -> упстреам/е/ос/в1-ноугат * [нова грана] флуид-11 -> упстреам/флуид-11 * [нова грана] фок_7.1 -> упстреам/фок_7.1 * [нова грана] хентаи-рика -> упстреам/хентаи-рика * [нова грана] ион-пие -> упстреам/ион-пие * [нова грана] линеаге-15.1 -> упстреам/линеаге-15.1 * [нова грана] линеаге -17.1 -> упстреам/лине-17.1 * [нова грана] линеаге-18.1 -> упстреам/лине-18.1 * [нова грана] линеаге-18.1_теос -> упстреам/линеаге-18.1_теос * [нова грана] линеаге-19.0 - > упстреам/линеаге-19.0 * [нова грана] маин -> упстреам/маин * [нова грана] мкн-мр1 -> упстреам/мкн-мр1 * [нова грана] ревенгеос-р11.0 -> упстреам/ревенгеос-р11.0. 1 * [нова грана] стеллар-С1 -> упстреам/стеллар-С11 * [нова грана] теос-н -> упстреам/теос-н * [нова грана] веебпројект-11 -> упстреам/веебпројект-XNUMX ✓ Клонирана виљушка
Видите да нисам користио „-б цм-14.1“ већ сам уместо тога направио дугачки аргумент. Од датума овог чланка, 16. фебруара 2022., ГХ има грешку да не прослеђује кратке аргументе Гит ЦЛИ-ју исправно и зато треба да се уради као дугачки аргументи.
Када је то урађено, редовно сте улазили у фасциклу, извршили своје измене, урезали, а затим га гурнули и спремни сте да урадите захтев за повлачење. За ово, све што вам треба је једноставно
$ гх пр цреате --бранцх="цм-14.1" Креирање захтева за повлачење за вз414-лабс:цм-14.1 у цм-14.1 у виндовз414/платформ_манифест? Наслов теос: Промена у Гит-Полицуле ? Тело ? Шта је следеће? Пошаљите хттпс://гитхуб.цом/виндовз414/платформ_манифест/пулл/1
Ако не додате „–бранцх=цм-14.1“, креирали бисте ПР према „главној“ грани, што ће наравно изазвати проблеме када се не обради како треба.
А сада, морам да спојим овај ПР, зар не? Тако да прво клонирам репо, одјавим у додељену филијалу и прво наведем ПР-ове.
# Прво клонирање. $ гит цлоне хттпс://гитхуб.цом/виндовз414/платформ_манифест Клонирање у 'платформ_манифест'... удаљено: Набрајање објеката: 136, готово. даљински: Бројање објеката: 100% (136/136), готово. даљински: Компресија објеката: 100% (81/81), готово. даљински: Укупно 136 (делта 46), поново коришћено 89 (делта 12), поново у паковању 0 Пријем објеката: 100% (136/136), 30.70 КиБ | 137.00 КиБ/с, урађено. Решавање делта: 100% (46/46), готово. # Затим се одјавите у филијалу. $ гит цхецкоут цм-14.1 грана 'цм-14.1' подешена да прати 'оригин/цм-14.1'. Прешао на нову грану 'цм-14.1' # И сада листа ПР-ова. $ гх пр листа Приказује 1 од 1 отвореног захтева за повлачење у виндовз414/платформ_манифест #1 теос: Промена на Гит-Полицуле вз414-лабс:цм-14.1
Сада када видимо да постоји ПР за промену даљинског у „Гит-Полицуле“, да видимо шта се променило са њим.
$ гх пр дифф 1 дифф --гит а/теос.кмл б/теос.кмл индекс б145фц0..3аадеб6 100644 --- а/теос.кмл +++ б/теос.кмл @@ -2,7 +2,7, 414 @@
Изгледа обећавајуће! Време је за спајање!
$ гх пр спајање 1? Који метод спајања желите да користите? Ребазирати и спојити? Шта је следеће? Пошаљите ✓ Ребазирани и спојени захтев за повлачење #1 (теос: Промена у Гит-Полицуле)
Сада када сам га спојио, можете избрисати своју виљушку.
$ гх репо делете --цонфирм вз414-лабс/платформ_манифест ✓ Избрисано спремиште вз414-лабс/платформ_манифест
Видите да је директно избрисан репо без захтева за потврду јер сам тамо пренео параметар „–цонфирм“. Ако га не бисте положили, добили бисте ово:
$ гх репо избрисати виндовз414/системд? Унесите виндовз414/системд да потврдите брисање:
И требало би да унесете цело име репо. губљење времена…
резиме
Једноставно речено, `гх` је прилично поједностављен Гит ЦЛИ/Цурл омот који обједињује једноставне Гит операције и ГитХуб АПИ ствари под истим кровом. Како га користите? Да ли теби изгледа обећавајуће као мени? Радујемо се што ћемо чути од вас!