Programmēšana

Kas ir GitHub? Vairāk nekā Git versijas vadība mākonī

GitHub pamatā ir Git repozitorija mitināšanas pakalpojums, t.i., uz mākoņiem balstīta avota koda pārvaldība vai versiju kontroles sistēma, taču tas ir tikai sākums. Turklāt GitHub ievieš funkcijas koda pārskatīšanai (ievilkšanas pieprasījumi, diffs un pārskatīšanas pieprasījumi), projektu vadībai (ieskaitot jautājumu izsekošanu un piešķiršanu), integrācijām ar citiem izstrādātāju rīkiem, komandas vadībai, dokumentācijai un “sociālajai kodēšanai”.

Kaut kas līdzīgs sociālo tīklu vietnei programmētājiem, GitHub ir atvērta vide, kurā programmētāji var brīvi dalīties un sadarboties (pat ad hoc) ar atvērtā pirmkoda palīdzību. GitHub ļauj viegli atrast noderīgu kodu, kopēt krātuves savām vajadzībām un iesniegt izmaiņas citu projektos. Rezultātā GitHub ir kļuvis par mājvietu praktiski ikvienam jebkuras nozīmes atvērtā koda projektam.

Ikreiz, kad es vēlos izpētīt atvērtā pirmkoda projektu, es vispirms meklēju projekta nosaukumu. Kad esmu atradis projekta vietni, es meklēju tā kodu krātuves saiti, un deviņas reizes no 10 es beidzu GitHub.

Git versijas vadība

Pirms mēs varam saprast, ko GitHub dara un kā GitHub darbojas, mums ir jāsaprot Git. Git ir izplatīta versiju kontroles sistēma, kuru sākotnēji Linuss Torvalds uzrakstīja 2005. gadā Linux kodola kopienai un ar tās palīdzību. Es neesmu šeit, lai jūs pārdotu vietnē Git, tāpēc es jums saudzēšu spielu par to, cik ātrs, mazs, elastīgs un populārs tas ir, taču jums tas jāzina, kad klonējat Git repozitoriju (īsi “repo”) jūs saņemat visu versiju vēsturi savā datorā, nevis tikai momentuzņēmumu no vienas filiāles vienlaikus.

Git sāka kā komandrindas rīks, kas atbilst tā izcelsmei Linux kodola kopienā. Jūs joprojām varat izmantot komandrindu Git, ja vēlaties, bet jums tas nav jādara. Komandrindas vietā vai papildus komandrindai varat izmantot bezmaksas GitHub klientu operētājsistēmā Windows vai Mac vai jebkuru citu Git GUI vai kodu redaktoru, kas integrējas ar Git. Visas šīs opcijas sākotnēji ir vieglāk izmantot nekā komandrindu. Git komandrinda ir iepriekš instalēta lielākajā daļā Mac un Linux sistēmu un atbalsta visi operācijas; GUI parasti atbalsta bieži izmantoto Git darbību apakškopu.

Git atšķiras no vecākām versiju vadības sistēmām, piemēram, Subversion, jo tā tiek izplatīta, nevis centralizēta. Tas notiek arī diezgan ātri, it īpaši tāpēc, ka lielākā daļa darbību notiek jūsu vietējā repozitorijā. Tomēr Git izmantošana palielina sarežģītības pakāpi: izdarot kodu vietējā repozitorijā un stumšana jūsu saistības ar attālo repozitoriju ir atsevišķas darbības. Kad komandas to aizmirst (vai arī par to netika mācītas), tas var novest pie situācijām, kad dažādi izstrādātāji strādā ar atšķirīgām kodu bāzēm.

Attālā Git krātuve var atrasties serverī vai cita izstrādātāja mašīnā. Tas komandām nodrošina daudzas iespējamās darbplūsmas. Viena izplatīta darbplūsma ietver servera krātuves izmantošanu kā “svētīgu” krātuvi, kurai tiek piešķirts tikai pārskatīts, labi pārbaudīts kods, bieži izmantojot pull pieprasījums izsniedz no izstrādātāja repozitorija.

GitHub funkcionalitāte

Es jau atzīmēju, ka GitHub ir mākoņa bāzes Git serveris kodu mitināšanai un sociālajai kodēšanai un ka tas ievieš funkcijas koda pārskatīšanai (ievilkšanas pieprasījumi, diffs un pārskatīšanas pieprasījumi), projektu vadībai (ieskaitot problēmu izsekošanu un piešķiršanu), integrācija ar citiem izstrādātāja rīkiem, komandas vadība un dokumentācija.

Jaunākais jaunums sociālās kodēšanas jomā no GitHub ir apņemties līdzautorus, ko jūs izpildāt, pievienojot vienu vai vairākas “līdzautoru” reklāmkadrus saistību ziņojuma beigās. Šis mehānisms neietekmē repo kodols pats par sevi un nemaina repo izskatu parastajā Git, bet GitHub hroms saistību sarakstā parādīs vairākus izpildītājus un katram līdzautoram piešķirs kredītu viņa ieguldījumu grafikā.

Ja vēlaties, varat paplašināt GitHub, izmantojot GitHub GraphQL API. Tas ir ievērojams uzlabojums salīdzinājumā ar GitHub iepriekšējo API, kura pamatā bija REST zvani.

GitHub Enterprise

GitHub.com ir mākoņa mitināšanas pakalpojums, kas var apstrādāt dažādus kontu veidus: bezmaksas (tikai publiskās repo) un apmaksātos (7 USD mēnesī) izstrādātāju kontus, komandas (9 USD vienam lietotājam mēnesī) un uzņēmumus (21 USD vienam lietotājam mēnesī) ). Ja vēlaties palaist GitHub Enterprise lokāli vai savā mākoņa instancē AWS, Microsoft Azure, Google Cloud Platform vai IBM Cloud, varat to izdarīt par tādu pašu 21 USD par lietotāju mēnesī kā mitinātā biznesa konts. GitHub Enterprise pievieno dažas noderīgas funkcijas, piemēram, lietotņu ziņojumapmaiņu lietotājiem un piekļuves nodrošināšanu, kas integrēta ar LDAP direktorijiem, taču atsakās no GitHub.com 99,95 procentu darbības laika SLA mitinātajiem biznesa kontiem.

GitHub pret Bitbucket

GitHub nav vienīgais mitinātais uzlabotais Git pakalpojums, un GitHub Enterprise nav vienīgais vietējais produkts uzņēmumiem. Atlassian Bitbucket konkurē ar abiem, ar nedaudz zemāku cenu un ar bezmaksas piecu dalībnieku komandas līmeni, kas ietver neierobežotas privātās repo un Bitbucket Pipelines izmantošanu nepārtrauktai integrācijai. GitHub ir populārāka vietne atvērtā koda projektiem, un tajā ir daudz lielāks atvērtā koda izstrādātāju kopums. Bitbucket cenas ir labvēlīgākas maziem jaunizveidotiem uzņēmumiem.

GitHub pret GitLab

GitLab konkurē gan ar GitHub, gan Bitbucket - gan mitinātiem, gan lokāliem. Virspusēji šķiet, ka GitLab dzīves cikla funkcionalitāte ir lielāka nekā pārējiem, taču atšķirība no Atlassian pārsvarā izzūd, ja, iekļaujot Jira, novērtējot Bitbucket. GitLab piedāvā zelta plāna mākoņa funkcijas atvērtā koda projektiem bez maksas, taču šī papildu funkcionalitāte patiesībā nekompensē lielāku atvērtā koda izstrādātāju kopienu vietnē GitHub.

GitHub darbvirsma

GitHub Desktop, kas parādīts zemāk, ļauj ērti pārvaldīt savus GitHub.com un GitHub Enterprise krātuves. Lai gan tas netiek ieviests visi Git komandrindas un GitHub tīmekļa GUI funkcijas, tā īsteno visas darbības, kuras ikdienā veicat no darbvirsmas, vienlaikus sniedzot ieguldījumu projektos. Parasti jūs klonēsit repo no GitHub uz GitHub Desktop, pēc vajadzības tos sinhronizēsit, izveidosiet sava darba atzarus, izdarīsit savu darbu un reizēm atcelsit vienu vai vairākas saistības.

Lai strādātu ar repo, kuriem trūkst apņemšanās un sadarbības privilēģiju, parasti sāciet atdalīt repo GitHub un klonējiet dakšiņu uz darbvirsmas. Pēc tam GitHub darbvirsmā pievienojat visas nepieciešamās filiāles, veicat visas vēlamās izmaiņas, pārbaudiet savu darbu, nospiediet saistības atpakaļ uz attālo dakšu repo un visbeidzot ģenerējiet pieprasījumu vecāku projektam.

GitHub darbvirsmas saskarnes augšējā labajā stūrī varat redzēt pogu Pull Request. Neo4j projektā var redzēt arī daudzas saistības, kas bija filiāļu apvienošana vai izvilkšanas pieprasījumi. Tas ir raksturīgi atklātā pirmkoda projektiem, kuros ir maz iesaistīto un daudz līdzstrādnieku.

Atom redaktors

Jūs varat izmantot jebkuru programmēšanas redaktoru, kas jums patīk, lai rediģētu kodu, tostarp GitHub bezmaksas, atvērtā koda, uzlaustu Atom redaktoru (parādīts zemāk), kas labi integrējas GitHub un GitHub Desktop. Atom var izmantot MacOS, Windows vai Linux. Atom var atvērt no GitHub Desktop, ar peles labo pogu noklikšķinot uz krātuves, kuru vēlaties pārlūkot vai rediģēt.

Atom piegādā apmēram 90 paketes, četras lietotāja saskarnes tēmas un astoņas sintakses tēmas. Atom instalācijai varat pievienot jebkuru no 7000 pakotnēm un 2000 motīviem. Paketes var atbalstīt noteiktas programmēšanas valodas, piemēram, TypeScript, vai pievienot funkcionalitāti, piemēram, interaktīvu kodēšanas vidi Hydrogen, kas atbalsta Python, R, JavaScript un citus Jupyter kodolus.

Atom ir veidots ar HTML, JavaScript, CSS un Node.js integrāciju. Tas darbojas uz Electron, ietvara, lai izveidotu starpplatformu lietotnes, izmantojot tīmekļa tehnoloģijas. GitHub Desktop darbojas arī ar Electron.

GitHub projekti

Atvērtā koda programmatūras projektiem bieži vien ir vajadzīgi veidi, kā ieviest kvalitātes kontroli, vienlaikus pieņemot ieguldījumus no saistību veicēju pamata komandas. Nepieciešamība pēc ieguldītājiem ir milzīga, taču jaunu dalībnieku iesaistīšana projektā, vienlaikus saglabājot koda bāzes integritāti, ir grūts un potenciāli bīstams pasākums. Tajā pašā laikā vajadzība pēc atsauksmēm no projekta lietotājiem ir arī milzīga.

GitHub ir vairāki mehānismi, kas var palīdzēt ieeļļot atklātā pirmkoda projektu riteņus. Piemēram, lietotāji var pievienot jautājumiem projektam GitHub, lai ziņotu par kļūdām vai pieprasītu funkcijas. Dažas citas sistēmas tos sauc biļetes. Projektu vadītāji, kas strādā ar jautājumiem, var ģenerēt uzdevumu sarakstus, piešķirt jautājumus konkrētiem līdzstrādniekiem, pieminēt citus ieinteresētos līdzautorus, lai viņi tiktu informēti par izmaiņām, pievienot etiķetes un pievienot atskaites punktus.

Lai sniegtu ieguldījumu projektā, jūs galvenokārt sākat no tēmas galva filiāle, kurā ir veiktās izmaiņas, kuras vēlaties pievienot projektam bāze atzarojiet un inicializējiet a pull pieprasījums no galvas zara, kā parādīts zemāk. Tad jūs nospiežat savas saistības un pievienojat tās projekta filiālei. Citi līdzautori var pārskatīt jūsu piedāvātās izmaiņas, pievienot komentārus par pārskatīšanu, piedalīties izvilkšanas pieprasījuma diskusijā un pievienot savas saistības pieprasījumam.

Kad visi iesaistītie ir apmierināti ar ierosinātajām izmaiņām, apņēmējs var apvienot pieprasījumu. Apvienošana var saglabāt visas saistības, visas izmaiņas saspiest vienā izdarīšanā vai pārvērtēt no galvenās filiāles bāzes filiālē. Ja apvienošana rada konfliktus, tos var atrisināt GitHub vai izmantojot komandrindu.

Kodu pārskati vietnē GitHub ļauj sadalītai komandai sadarboties asinhroni. Recenzentiem noderīgie GitHub rīki ietver diffs (zemāk redzamā ekrānuzņēmuma apakšējā puse), vēsturi (augšējā puse) un vainīgo skatu (veids, kā apskatīt faila evolūciju, izmantojot saistības). Kodu diskusijās vietnē GitHub iekļauti komentāri, kas tiek parādīti atbilstoši jūsu koda izmaiņām. Ja jūsu projektam nepietiek ar iebūvētajiem rīkiem, no GitHub tirgus varat pievienot kodu pārskatīšanas un nepārtrauktas integrācijas rīkus. Tirgus pievienojumprogrammas bieži ir bezmaksas atvērtā pirmkoda projektiem.

GitHub kopsavilkumi

Vārdi ir īpaši GitHub krātuves, lai koplietotu savu darbu (publisko) vai saglabātu darbu vēlākai atkārtotai izmantošanai (slepeni). Tajos var būt atsevišķi faili, failu daļas vai pilnas lietojumprogrammas. Jūs varat lejupielādēt kopsavilkumus, tos klonēt, dakšas un iegult.

Publiskos kopsavilkumus var atrast un atrast meklēšanā. Varat izmantot atslēgvārdus, lai sašaurinātu atrasto, ieskaitot prefiksus, lai rezultātus ierobežotu līdz konkrētu lietotāju kopsavilkumiem, kopsavilkumiem ar vismaz N zvaigznes, kopsavilkumi ar konkrētiem failu nosaukumiem utt.

Slepenos kopsavilkumus nevar meklēt, taču ikviens, kam ir URL, tos var redzēt. Ja jūs patiešām vēlaties, lai kods tiktu aizsargāts, izmantojiet privātu repozitoriju.

Kā jau redzējām, GitHub nodrošina Git krātuves kā pakalpojumu, kā arī funkcijas kodu pārskatīšanai, projektu vadībai, integrēšanai ar citiem izstrādātāju rīkiem, komandas vadībai, sociālajai kodēšanai un dokumentācijai. Kaut arī GitHub nav vienīgais produkts savā kategorijā, tas ir dominējošais atklātā pirmkoda programmatūras izstrādes krātuve.

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