Programiranje

Kaj je GitHub? Več kot nadzor nad različicami Git v oblaku

GitHub je v osnovi storitev gostovanja repozitorija Git, torej sistem za upravljanje izvorne kode v oblaku ali sistem za nadzor različic, vendar je to šele začetek. Poleg tega GitHub izvaja funkcije za pregled kode (zahteve za vlečenje, razlike in zahteve za pregled), upravljanje projektov (vključno s sledenjem in dodeljevanjem težav), integracije z drugimi orodji za razvijalce, upravljanje skupin, dokumentacijo in »socialno kodiranje«.

Nekaj ​​takega kot spletno mesto za družabna omrežja za programerje, GitHub je odprto okolje, kjer lahko programerji prosto delijo in sodelujejo (tudi ad hoc) na odprtokodni kodi. GitHub olajša iskanje koristne kode, kopiranje repozitorijev za lastno uporabo in predložitev sprememb v projekte drugih. Kot rezultat, je GitHub postal dom skoraj vseh odprtokodnih projektov kakršnega koli pomena.

Kadarkoli želim raziskati odprtokodni projekt, začnem z iskanjem imena projekta. Ko najdem spletno stran projekta, poiščem povezavo do repozitorija kode in devetkrat od 10 končam na GitHubu.

Nadzor različice Git

Preden lahko razumemo, kaj počne GitHub in kako deluje GitHub, moramo razumeti Git. Git je porazdeljeni sistem za nadzor različic, ki ga je prvotno napisal Linus Torvalds leta 2005 za in s pomočjo jedrske skupnosti Linux. Nisem tukaj, da bi vas prodal na Gitu, zato vam bom prizanesel, kako hiter in majhen ter prilagodljiv in priljubljen je, vendar morate vedeti, da ko klonirate skladišče Git (na kratko »repo«) celotno zgodovino različic dobite v svojem računalniku, ne le posnetek iz ene veje hkrati.

Git se je začel kot orodje ukazne vrstice, kar ustreza njegovemu izvoru v skupnosti jeder Linuxa. Če želite, lahko še vedno uporabljate ukazno vrstico Git, vendar vam ni treba. Namesto ukazne vrstice ali poleg nje lahko uporabite brezplačni odjemalec GitHub v operacijskem sistemu Windows ali Mac ali katerega koli od številnih drugih grafičnih uporabniških vmesnikov za Git ali urejevalnik kod, ki se integrira z Gitom. Vse te možnosti je sprva lažje uporabljati kot ukazno vrstico. Ukazna vrstica Git je vnaprej nameščena v večini sistemov Mac in Linux in podpira vse operacije; GUI običajno podpirajo pogosto uporabljeno podskupino operacij Git.

Git se razlikuje od starejših sistemov za nadzor različic, kot je Subversion, po tem, da je distribuiran in ne centraliziran. Prav tako je precej hiter, še posebej, ker se večina operacij zgodi na vašem lokalnem repozitoriju. Kljub temu uporaba Gita doda stopnjo zapletenosti: zavezujoča kodo v vaš lokalni repozitorij in potiskanje vaši predaji v oddaljenem repozitoriju so ločeni koraki. Ko ekipe to pozabijo (ali o tem niso bile poučene), lahko pride do situacij, ko različni razvijalci delajo z različnimi bazami kod.

Oddaljeno skladišče Git je lahko na strežniku ali na računalniku drugega razvijalca. To omogoča številne možne poteke dela za ekipe. Eden najpogostejših delovnih tokov vključuje uporabo strežniškega repozitorija kot »blagoslovljenega« repozitorija, ki mu je dodeljena le pregledana, dobro preizkušena koda, pogosto prek povlecite zahtevo izdano iz skladišča razvijalcev.

GitHub funkcionalnost

Opazil sem že, da je GitHub strežnik Git v oblaku za gostovanje kode in socialno kodiranje ter da vključuje funkcije za pregled kode (povleci zahteve, razlike in zahteve za pregled), upravljanje projektov (vključno s sledenjem težav in dodelitvijo), integracije z drugimi orodji za razvijalce, vodenjem ekipe in dokumentacijo.

Najnovejša inovacija družbenega kodiranja podjetja GitHub je zavezujejo soavtorji, ki ga dosežete z dodajanjem ene ali več napovednikov v soavtorstvu na konec sporočila o objavi. Ta mehanizem ne vpliva na repo jedro sam po sebi in ne spremeni, kako izgleda repo v navadnem Gitu, ampak v GitHubu krom bo na seznamu odobritev prikazal več prevzemnikov in vsakemu soavtorju dodal zasluge v njegovem grafu prispevkov

Če želite, lahko GitHub razširite z API-jem GitHub GraphQL. To je bistven napredek v primerjavi s prejšnjim API-jem GitHub, ki je temeljil na klicih REST.

GitHub Enterprise

GitHub.com je storitev gostovanja v oblaku, ki lahko obravnava vrsto vrst računov: brezplačne (samo javni repo skladi) in plačljive (7 USD na mesec) račune razvijalcev, ekipe (9 USD na uporabnika na mesec) in podjetja (21 USD na uporabnika na mesec). ). Če želite GitHub Enterprise zagnati lokalno ali v svojem lastnem primerku v oblaku na AWS, Microsoft Azure, Google Cloud Platform ali IBM Cloud, lahko to storite za enakih 21 USD na uporabnika na mesec kot gostovan poslovni račun. GitHub Enterprise doda nekaj uporabnih funkcij, kot so pošiljanje sporočil v aplikacijah uporabnikom in zagotavljanje dostopa, integrirano z imeniki LDAP, vendar se odpoveduje 99,95-odstotnemu SLA storitve GitHub.com za čas obratovanja poslovnih računov.

GitHub proti Bitbucketu

GitHub ni edina gostujoča izboljšana storitev Git in GitHub Enterprise ni edini lokalni izdelek za podjetja. Atlassian Bitbucket tekmuje z obema, z nekoliko nižjimi cenami in z brezplačno petčlansko raven ekipe, ki vključuje neomejene zasebne repo posnetke in uporabo Bitbucket Pipelines za stalno integracijo. GitHub je bolj priljubljeno spletno mesto za odprtokodne projekte in ima veliko večji obseg odprtokodnih razvijalcev. Cene Bitbucket-a so ugodnejše za majhna zagonska podjetja.

GitHub proti GitLab

GitLab tekmuje tako z GitHubom kot Bitbucketom, tako gostujočim kot tudi lokalnim. Na prvi pogled se zdi, da ima GitLab več funkcionalnosti življenjskega cikla kot drugi, vendar razlika od Atlassiana večinoma izgine, če vključite Jira, ko ocenjujete Bitbucket. GitLab ponuja funkcije oblaka Gold-plan za odprtokodne projekte brezplačno, vendar ta dodatna funkcionalnost v resnici ne kompenzira večje odprtokodne skupnosti razvijalcev na GitHubu.

Namizje GitHub

Namizje GitHub, prikazano spodaj, olajša upravljanje skladišč GitHub.com in GitHub Enterprise. Čeprav se ne izvaja vse funkcije ukazne vrstice Git in spletnega grafičnega uporabniškega vmesnika GitHub, izvaja vse operacije, ki jih boste vsak dan izvajali z namizja, hkrati pa prispevali k projektom. Običajno boste klonirali repo posnetke iz GitHub v namizje GitHub, jih po potrebi sinhronizirali, ustvarili veje za svoje delo, predali svoje delo in občasno razveljavili enega ali več opravkov.

Če želite delati z repo skladi, za katere vam manjkajo pooblastila za prevzem in sodelovanje, običajno začnete tako, da repo shranite v GitHub in klonirate vilice na namizje. Nato dodate vse veje, ki jih potrebujete v namizju GitHub, naredite vse spremembe, ki jih želite, preizkusite svoje delo, potisnete zaveze nazaj v oddaljeni fork repo in na koncu ustvarite zahtevo za vlečenje nadrejenega projekta.

Gumb Pull Request lahko vidite v zgornjem desnem kotu vmesnika GitHub Desktop. V projektu Neo4j lahko vidite tudi številne zaveze, ki so bile združitve podružnic ali zahteve za vlečenje. To je značilno za odprtokodne projekte z malo prijavitelji in veliko sodelavci.

Urejevalnik Atom

Za urejanje kode lahko uporabite kateri koli urejevalnik programov, vključno z GitHubovim brezplačnim, odprtokodnim urejevalnikom Atom (prikazan spodaj), ki se dobro integrira z GitHub in GitHub Desktop. Atom lahko uporabljate v sistemih MacOS, Windows ali Linux. Atom lahko odprete z namizja GitHub, tako da z desno miškino tipko kliknete repozitorij, ki ga želite brskati ali urejati.

Atom ima približno 90 paketov, štiri teme uporabniškega vmesnika in osem skladenjskih tem. V namestitev Atoma lahko dodate katerega koli od 7.000 paketov in 2.000 tem. Paketi lahko podpirajo določene programske jezike, kot je TypeScript, ali dodajo funkcije, kot je vodik, interaktivno kodirajoče okolje, ki podpira Python, R, JavaScript in druga Jupyterjeva jedra.

Atom je zgrajen z integracijo HTML, JavaScript, CSS in Node.js. Deluje na Electronu, okviru za izdelavo aplikacij med različnimi platformami s pomočjo spletnih tehnologij. GitHub Desktop deluje tudi na Electronu.

Projekti GitHub

Odprtokodni projekti programske opreme pogosto potrebujejo načine za uveljavitev nadzora kakovosti, hkrati pa še vedno sprejemajo prispevke zunaj osrednje skupine zavezancev. Potreba po sodelavcih je velika, toda vključitev novih sodelavcev v projekt ob ohranjanju integritete kode je težko in potencialno nevarno podjetje. Hkrati je velika tudi potreba po povratnih informacijah uporabnikov projekta.

GitHub ima številne mehanizme, ki lahko pomagajo podmazati kolesa odprtokodnih projektov. Uporabniki lahko na primer dodajo vprašanja v projekt na GitHub, da poroča o napakah ali zahteva funkcije. Nekateri drugi sistemi jih imenujejo vstopnice. Vodje projektov, ki delajo s težavami, lahko ustvarijo sezname opravil, dodelijo težave določenim sodelavcem, omenjajo druge zainteresirane sodelavce, tako da so obveščeni o spremembah, dodajajo oznake in dodajajo mejnike.

Če želite prispevati k projektu, v bistvu izhajate iz teme glavo veja, ki vsebuje zavezane spremembe, ki jih želite dodati projektu osnova vejo in inicializirajte a povlecite zahtevo od veje glave, kot je prikazano spodaj. Nato potisnete svoje zaveze in jih dodate v vejo projekta. Drugi sodelavci lahko pregledajo vaše predlagane spremembe, dodajo komentarje o pregledu, prispevajo k razpravi o zahtevi za vlečenje in dodajo svoje obveznosti v zahtevo za vlečenje

Ko so vsi udeleženi zadovoljni s predlaganimi spremembami, lahko zavezanec združi zahtevo za vlečenje. Združevanje lahko ohrani vse zaveze, zmečka vse spremembe v en sam prevzem ali preoblikuje predaje iz glavne veje v osnovno vejo. Če združitev ustvari konflikte, jih lahko rešite v GitHubu ali z uporabo ukazne vrstice.

Pregledi kode na GitHubu omogočajo porazdeljeni skupini, da asinhrono sodeluje. Uporabna orodja GitHub za pregledovalce vključujejo razlike (spodnja polovica posnetka zaslona spodaj), zgodovino (zgornjo polovico) in pogled krivde (način za ogled razvoja datoteke, ki se je zavezala). Razprave o kodah na GitHubu vključujejo komentarje, ki so predstavljeni v vrstici s spremembami kode. Če vgrajena orodja ne zadoščajo za vaš projekt, lahko na trg GitHub dodate orodja za pregled kode in neprekinjeno integracijo. Tržni dodatki so pogosto brezplačni za odprtokodne projekte.

GitHub bistvo

Seznami so posebna shramba GitHub za skupno rabo vašega dela (javno) ali za shranjevanje dela za kasnejšo ponovno uporabo (skrivno). Vsebujejo lahko posamezne datoteke, dele datotek ali celotne programe. Lahko prenesete mape, jih klonirate, razkrijete in vdelate.

Javne sezname je mogoče najti in najti pri iskanju. Ključne besede lahko uporabite za zožitev najdenega, vključno s predponami, da rezultate omejite na sezname določenih uporabnikov, na sezname z vsaj N zvezde, seznami z določenimi imeni datotek itd.

Skrivnega seznama ni mogoče iskati, lahko pa ga vidi vsak, ki ima URL. Če res želite, da je vaša koda zaščitena, uporabite zasebno skladišče.

Kot smo že videli, GitHub ponuja skladišča Git kot storitev, skupaj s funkcijami za pregled kode, upravljanje projektov, integracije z drugimi orodji za razvijalce, upravljanje skupin, socialno kodiranje in dokumentacijo. Čeprav GitHub ni edini izdelek v svoji kategoriji, je prevladujoče skladišče za razvoj odprtokodne programske opreme.

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