Programavimas

Kas yra „GitHub“? Daugiau nei „Git“ versijos valdymas debesyje

„GitHub“ yra „Git“ saugyklos prieglobos paslauga, t. Y. Debesyje pagrįsta šaltinio kodo tvarkymo arba versijų valdymo sistema, tačiau tai tik pradžia. Be to, „GitHub“ įdiegia kodo peržiūros (traukimo užklausų, diffų ir peržiūros užklausų), projektų valdymo (įskaitant klausimų stebėjimą ir priskyrimą), integravimo su kitais kūrėjo įrankiais, komandos valdymo, dokumentacijos ir „socialinio kodavimo“ funkcijas.

Kažkas panašaus į socialinių tinklų svetainę, skirtą programuotojams, „GitHub“ yra atvira aplinka, kurioje programuotojai gali laisvai dalytis ir bendradarbiauti (net ir ad hoc) dėl atvirojo kodo. „GitHub“ leidžia lengvai rasti naudingą kodą, nukopijuoti saugyklas savo reikmėms ir pateikti pakeitimus kitų projektams. Todėl „GitHub“ tapo praktiškai visų bet kokios svarbos atvirojo kodo projektų namais.

Kai tik noriu ištirti atviro kodo projektą, pirmiausia pradedu ieškoti projekto pavadinimo. Radęs projekto svetainę, ieškau jos kodų saugyklos nuorodos ir devynis kartus iš 10 baigiu „GitHub“.

„Git“ versijos valdymas

Kad galėtume suprasti, ką veikia „GitHub“ ir kaip veikia „GitHub“, turime suprasti „Git“. „Git“ yra paskirstyta versijų valdymo sistema, kurią iš pradžių Linusas Torvaldsas parašė 2005 m. „Linux“ branduolio bendruomenei ir jai padedant. Aš nesu čia tam, kad parduočiau jus „Git“, todėl aš jums pasigailėsiu rašybos apie tai, kaip greitai, maži, lankstūs ir populiarūs, tačiau turėtumėte žinoti, kad klonuodami „Git“ saugyklą (trumpai „repo“) jūs gaunate visą versijų istoriją savo kompiuteryje, o ne tik vienos šakos momentinę nuotrauką vienu metu.

„Git“ pradėjo veikti kaip komandinės eilutės įrankis, atitinkantis jo kilmę „Linux“ branduolio bendruomenėje. Jei norite, vis tiek galite naudoti „Git“ komandų eilutę, bet to neturite. Vietoj komandinės eilutės arba šalia jos galite naudoti nemokamą „GitHub“ klientą sistemoje „Windows“ arba „Mac“ arba bet kurį iš daugelio kitų „Git“ GUI arba su „Git“ integruotą kodų redagavimo priemonę. Iš pradžių visas šias parinktis lengviau naudoti nei komandinėje eilutėje. „Git“ komandų eilutė yra iš anksto įdiegta daugumoje „Mac“ ir „Linux“ sistemų ir palaiko visi operacijos; GUI paprastai palaiko dažnai naudojamą „Git“ operacijų pogrupį.

„Git“ skiriasi nuo senesnių versijų valdymo sistemų, tokių kaip „Subversion“, nes yra paskirstyta, o ne centralizuota. Tai taip pat gana greita, ypač todėl, kad dauguma operacijų atliekama jūsų vietinėje saugykloje. Nepaisant to, „Git“ naudojimas padidina sudėtingumo lygį: įsipareigodamas kodą į savo vietinę saugyklą ir stumdamas jūsų įsipareigojimai nuotolinei saugyklai yra atskiri veiksmai. Kai komandos tai pamiršta (arba nebuvo apie tai išmokytos), tai gali sukelti situacijas, kai skirtingi kūrėjai dirba su skirtingomis kodų bazėmis.

Nuotolinė „Git“ saugykla gali būti serveryje arba kito kūrėjo kompiuteryje. Tai įgalina daugybę galimų komandų darbo eigų. Viena įprasta darbo eiga apima serverio saugyklos naudojimą kaip „palaimintą“ saugyklą, kuriai skiriamas tik peržiūrėtas, gerai patikrintas kodas, dažnai per traukimo prašymas išleistas iš kūrėjo saugyklos.

„GitHub“ funkcionalumas

Aš jau pastebėjau, kad „GitHub“ yra debesų pagrindu veikiantis „Git“ serveris, skirtas kodų prieglobai ir socialiniam kodavimui, ir kad jis įgyvendina kodo peržiūros (traukimo užklausų, diffų ir peržiūros užklausų), projektų valdymo (įskaitant problemų stebėjimą ir priskyrimą) funkcijas, integravimas su kitais kūrėjo įrankiais, komandos valdymas ir dokumentacija.

Naujausia „GitHub“ socialinio kodavimo naujovė yra įsipareigoti bendraautoriams, kurį atliksite pridėdami vieną ar daugiau „bendraautorių“ anonsų prie įsipareigojimo pranešimo pabaigos. Šis mechanizmas neveikia atpirkimo šerdis per se ir nekeičia, kaip atpirkimas atrodo paprastame „Git“, bet „GitHub“ chromuotas parodys kelis įsipareigojusius asmenis įsipareigojimų sąraše ir suteiks kiekvienam bendraautoriui kreditą jo indėlio grafike.

Jei norite, galite išplėsti „GitHub“ naudodami „GitHub GraphQL“ API. Tai yra reikšmingas patobulinimas, palyginti su ankstesne „GitHub“ API, kuri buvo pagrįsta REST skambučiais.

„GitHub Enterprise“

„GitHub.com“ yra debesies prieglobos paslauga, galinti tvarkyti įvairius sąskaitų tipus: nemokamą (tik viešose atpirkimo vietose) ir mokamas (7 USD per mėnesį) kūrėjų paskyras, komandas (9 USD vienam vartotojui per mėnesį) ir įmonėms (21 USD vienam vartotojui per mėnesį). ). Jei norite paleisti „GitHub Enterprise“ vietoje arba savo debesies egzemplioriuje AWS, „Microsoft Azure“, „Google Cloud Platform“ ar „IBM Cloud“, galite tai padaryti už tą pačią 21 USD vienam vartotojui per mėnesį kainą kaip priglobtos verslo paskyros. „GitHub Enterprise“ prideda keletą naudingų funkcijų, tokių kaip pranešimai programoje vartotojams ir prieigos suteikimas, integruotas su LDAP katalogais, tačiau atsisako „GitHub.com“ 99,95 proc. Veikiančio SLA priglobtų verslo paskyrų.

„GitHub“ ir „Bitbucket“

„GitHub“ nėra vienintelė patobulinta „Git“ paslauga, o „GitHub Enterprise“ nėra vienintelis vietinis produktas įmonėms. „Atlassian Bitbucket“ konkuruoja su abiem - šiek tiek mažesnė kaina ir nemokamas penkių narių komandos lygis, apimantis neribotas privačias atpirkimo operacijas ir „Bitbucket Pipelines“ naudojimą nuolatinei integracijai. „GitHub“ yra populiaresnė atvirojo kodo projektų svetainė ir joje yra daug didesnis atvirojo kodo kūrėjų baseinas. „Bitbucket“ kainos yra palankesnės mažiems startuoliams.

„GitHub“ ir „GitLab“

„GitLab“ konkuruoja tiek su „GitHub“, tiek su „Bitbucket“, tiek priegloboje, tiek vietoje. Iš pažiūros atrodo, kad „GitLab“ gyvavimo ciklo funkcionalumas yra didesnis nei kitų, tačiau skirtumas nuo „Atlassian“ dažniausiai išnyksta, jei vertindami „Bitbucket“ įtraukiate ir Jirą. „GitLab“ siūlo aukso plano debesies funkcijas atvirojo kodo projektams nemokamai, tačiau ši papildoma funkcija tikrai nekompensuoja didesnės atvirojo kodo kūrėjų bendruomenės „GitHub“.

„GitHub“ darbalaukis

„GitHub Desktop“, parodytas žemiau, leidžia lengvai tvarkyti „GitHub.com“ ir „GitHub Enterprise“ saugyklas. Nors tai neįgyvendinama visi „Git“ komandinės eilutės ir „GitHub“ žiniatinklio GUI ypatybes, ji įgyvendina visas operacijas, kurias kasdien atliksite naudodamiesi savo darbalaukiu, prisidedant prie projektų. Paprastai jūs klonuosite atpirkimus iš „GitHub“ į „GitHub Desktop“, prireikus juos sinchronizuosite, sukursite savo šakos savo darbui, atliksite savo darbą ir retkarčiais grąžinsite vieną ar daugiau įsipareigojimų.

Norėdami dirbti su atpirkimo sandoriais, kuriems trūksta įsipareigojimo ir bendradarbiavimo privilegijų, paprastai pradedate išparduoti atpirkimą „GitHub“ ir klonuoti šakutę į savo darbalaukį. Tada pridėsite visus reikalingus filialus „GitHub Desktop“, atlikite visus norimus pakeitimus, išbandykite savo darbą, grąžinkite įsipareigojimus atgal į savo nuotolinį šakotą atpirkimo sandorį ir galiausiai sugeneruosite užklausą pagrindiniam projektui.

Viršutiniame dešiniajame „GitHub Desktop“ sąsajos kampe galite pamatyti mygtuką „Pull Request“. Taip pat „Neo4j“ projekte galite pamatyti daug įsipareigojimų, kurie buvo šakų sujungimai arba traukimo užklausos. Tai būdinga atvirojo kodo projektams, kuriuose dalyvauja nedaug dalyvių ir daug prisidedančių asmenų.

„Atom“ redaktorius

Galite redaguoti kodą naudodami bet kurį programavimo redaktorių, kurį norite redaguoti, įskaitant nemokamą „GitHub“, nulaužtą „Atom“ redaktorių (parodyta žemiau), kuris gerai integruojamas su „GitHub“ ir „GitHub Desktop“. „Atom“ galite naudoti „MacOS“, „Windows“ ar „Linux“. „Atom“ galite atidaryti iš „GitHub Desktop“ dešiniuoju pelės klavišu spustelėdami saugyklą, kurią norite naršyti ar redaguoti.

„Atom“ turi apie 90 paketų, keturias vartotojo sąsajos temas ir aštuonias sintaksės temas. Prie „Atom“ diegimo galite pridėti bet kurį iš 7000 paketų ir 2000 temų. Paketai gali palaikyti konkrečias programavimo kalbas, tokias kaip „TypeScript“, arba pridėti funkcijų, tokių kaip „Hydrogen“ - interaktyvi kodavimo aplinka, palaikanti „Python“, „R“, „JavaScript“ ir kitus „Jupyter“ branduolius.

„Atom“ yra sukurtas su HTML, „JavaScript“, CSS ir „Node.js“ integracija. Jis veikia naudojant „Electron“ - platformą, skirtą kurti įvairias platformas naudojančias žiniatinklio technologijas. „GitHub Desktop“ taip pat veikia su „Electron“.

„GitHub“ projektai

Atvirojo kodo programinės įrangos projektams dažnai reikia būdų, kaip užtikrinti kokybės kontrolę, vis tiek priimant įnašus iš pagrindinės įsipareigojančiųjų komandos narių. Bendradarbių poreikis yra didžiulis, tačiau įtraukti į projektą naujų dalyvių, išlaikant kodų bazės vientisumą, yra nelengva ir potencialiai pavojinga užduotis. Tuo pačiu metu projekto vartotojų atsiliepimų poreikis taip pat yra didžiulis.

„GitHub“ turi daugybę mechanizmų, kurie gali padėti sutepti atvirojo kodo projektų ratus. Pvz., Vartotojai gali pridėti Problemos „GitHub“ projektui pranešti apie klaidas arba prašyti funkcijų. Kai kurios kitos sistemos tai vadina bilietai. Projektų vadovai, dirbantys su problemomis, gali generuoti užduočių sąrašus, priskirti klausimus konkretiems bendraautoriams, paminėti kitus suinteresuotus bendraautorius, kad jiems būtų pranešta apie pakeitimus, pridėti etikečių ir pridėti gairių.

Norėdami prisidėti prie projekto, iš esmės pradedate nuo temos galva filialas, kuriame yra atlikti pakeitimai, kuriuos norite pridėti prie projekto bazė išsišakoti ir inicializuoti a traukimo prašymas nuo galvos šakos, kaip parodyta žemiau. Tada stumiate savo įsipareigojimus ir įtraukiate juos į projekto skyrių. Kiti bendraautoriai gali peržiūrėti jūsų siūlomus pakeitimus, pridėti komentarų apie peržiūrą, prisidėti prie diskusijos dėl prašymo ir pridėti savo įsipareigojimus prie prašymo.

Kai visi dalyviai bus patenkinti siūlomais pakeitimais, įsipareigojimų vykdytojas gali sujungti traukimo užklausą. Sujungus galima išsaugoti visus įvykdymus, sutvarkyti visus pakeitimus į vieną įsipareigojimą arba iš naujo pagrįsti įvykius iš pagrindinės šakos į pagrindinę šaką. Jei sujungimas sukelia konfliktus, galite juos išspręsti „GitHub“ arba naudodami komandinę eilutę.

„GitHub“ kodų peržiūros leidžia paskirstytai komandai bendradarbiauti asinchroniškai. Recenzentams naudingi „GitHub“ įrankiai yra skirtumai (apatinė ekrano kopijos pusė žemiau), istorija (viršutinė pusė) ir kaltinimų rodinys (būdas peržiūrėti failo, kurį įvykdo įsipareigojimas, raidą). Kodo diskusijose „GitHub“ pateikiami komentarai, kurie pateikiami kartu su jūsų kodo pakeitimais. Jei įmontuotų įrankių nepakanka jūsų projektui, galite pridėti kodo peržiūros ir nuolatinio integravimo įrankius iš „GitHub“ rinkos. „Marketplace“ priedai dažnai yra nemokami atvirojo kodo projektams.

„GitHub“ esmė

Sąrašai yra specialios „GitHub“ saugyklos, skirtos dalytis savo darbu (viešas) arba išsaugoti darbą, kad vėliau būtų galima naudoti pakartotinai (slapta). Juose gali būti pavieniai failai, failų dalys arba visos programos. Galite atsisiųsti svarbiausius dalykus, juos klonuoti, šakotis ir įdėti.

Viešas esmes galima atrasti ir rasti paieškose. Galite naudoti raktinius žodžius, kad susiaurintumėte tai, ką radote, įskaitant priešdėlius, kad rezultatai būtų apriboti konkrečių vartotojų, bent jau N žvaigždžių, tikslų su konkrečiais failų pavadinimais ir pan.

Slaptuose sąrašuose negalima ieškoti, tačiau visi, turintys URL, gali juos pamatyti. Jei tikrai norite, kad jūsų kodas būtų apsaugotas, naudokite privačią saugyklą.

Kaip matėme, „GitHub“ teikia „Git“ saugyklas kaip paslaugą kartu su kodų peržiūros, projektų valdymo, integravimo su kitais kūrėjo įrankiais, komandos valdymo, socialinio kodavimo ir dokumentavimo funkcijomis. Nors „GitHub“ nėra vienintelis produktas savo kategorijoje, tai yra dominuojanti atvirojo kodo programinės įrangos kūrimo saugykla.

$config[zx-auto] not found$config[zx-overlay] not found