Ohjelmointi

Mikä on GitHub? Enemmän kuin Git-versionhallinta pilvessä

GitHub on sydämessään Git-arkiston isännöintipalvelu, ts. Pilvipohjainen lähdekoodien hallinta tai versionhallintajärjestelmä, mutta se on vasta alkua. Lisäksi GitHub toteuttaa ominaisuuksia koodin tarkistamiseen (vetopyynnöt, erot ja tarkistuspyynnöt), projektinhallintaan (mukaan lukien ongelmien seuranta ja osoittaminen), integraatioihin muiden kehittäjien työkalujen kanssa, tiiminhallintaan, dokumentointiin ja "sosiaaliseen koodaukseen".

Jotain sosiaalisen verkostoitumisen sivustoa ohjelmoijille, GitHub on avoin ympäristö, jossa ohjelmoijat voivat vapaasti jakaa ja tehdä yhteistyötä (jopa tilapäisesti) avoimen lähdekoodin kanssa. GitHub helpottaa hyödyllisen koodin löytämistä, arkistojen kopioimista omaan käyttöön ja muutosten lähettämistä muiden projektiin. Tämän seurauksena GitHubista on tullut koti käytännöllisesti katsoen kaikille avoimen lähdekoodin projekteille.

Aina kun haluan tutkia avoimen lähdekoodin projektia, aloitan etsimällä projektin nimeä. Kun löydän projektin verkkosivuston, etsin sen koodivarastolinkkiä, ja yhdeksän kertaa kymmenestä päätän GitHubiin.

Git-versionhallinta

Ennen kuin voimme ymmärtää, mitä GitHub tekee ja miten GitHub toimii, meidän on ymmärrettävä Git. Git on hajautettu versionhallintajärjestelmä, jonka Linus Torvalds kirjoitti alun perin vuonna 2005 Linux-ytimen yhteisölle ja sen avustuksella. En ole täällä myydäksesi sinua Gitissä, joten säästän sinulle spielin siitä, kuinka nopea, pieni ja joustava ja suosittu se on, mutta sinun on tiedettävä, että kun kloonaat Git-arkiston (lyhyesti "repo") saat koko versiohistorian omalle tietokoneellesi, ei vain tilannekuvan yhdestä haarasta kerrallaan.

Git aloitti komentorivityökaluna, joka sopi sen alkuperään Linux-ytimen yhteisöön. Voit silti käyttää Git-komentoriviä, jos haluat, mutta sinun ei tarvitse. Komentorivin sijaan tai sen lisäksi voit käyttää ilmaista GitHub-asiakasta Windowsissa tai Macissa tai mitä tahansa muuta Git-käyttöliittymää tai Gitiin integroitavaa koodieditoria. Kaikkia näitä vaihtoehtoja on aluksi helpompi käyttää kuin komentoriviä. Git-komentorivi on esiasennettu useimpiin Mac- ja Linux-järjestelmiin ja tukee kaikki toiminta; graafiset käyttöliittymät tukevat tyypillisesti usein käytettyä Git-operaatioiden osajoukkoa.

Git eroaa vanhemmista versionhallintajärjestelmistä, kuten Subversion, koska se on jaettu eikä keskitetty. Se on myös melko nopea, varsinkin kun suurin osa toiminnoista tapahtuu paikallisessa arkistossa. Siitä huolimatta Gitin käyttö lisää monimutkaisuutta: sitoutuminen koodi paikalliseen arkistoon ja työntää tekemäsi tietovarasto ovat erilliset vaiheet. Kun tiimit unohtavat tämän (tai heille ei opetettu sitä), se voi johtaa tilanteisiin, joissa eri kehittäjät työskentelevät toisistaan ​​poikkeavien koodipohjien kanssa.

Git-etätietovarasto voi olla palvelimella tai toisen kehittäjän koneella. Tämä mahdollistaa joukkoille mahdollisia työnkulkuja. Yksi yleinen työnkulku sisältää palvelinsäilön käyttämisen "siunatuina" arkistoina, joihin sidotaan vain tarkistettu, hyvin testattu koodi, usein vetopyyntö myönnetty kehittäjän arkistosta.

GitHub-toiminnot

Olen jo todennut, että GitHub on pilvipohjainen Git-palvelin koodin ylläpitoa ja sosiaalista koodausta varten ja että se toteuttaa koodin tarkistusominaisuuksia (vetopyynnöt, erot ja tarkistuspyynnöt), projektinhallintaa (mukaan lukien ongelmien seuranta ja osoittaminen), integraatiot muiden kehittäjien työkalujen, tiiminhallinnan ja dokumentaation kanssa.

Uusin sosiaalisen koodauksen innovaatio GitHubilta on sitoutuvat tekijöihin, jonka teet lisäämällä yhden tai useampia "kirjoittamia" perävaunuja sitoutumisviestin loppuun. Tämä mekanismi ei vaikuta repoon ydin sinänsä, eikä se muuta sitä, miten repo näyttää tavallisella Gitillä, mutta GitHubilla kromi näyttää useita sitoutuneita sitoutumisluettelossa ja antaa jokaiselle tekijälle tunnustuksen panoskaaviossa.

Halutessasi voit laajentaa GitHubia GitHub GraphQL -sovellusliittymän avulla. Tämä on merkittävä parannus verrattuna GitHubin aiempaan sovellusliittymään, joka perustui REST-puheluihin.

GitHub Enterprise

GitHub.com on pilvipalvelupalvelu, joka pystyy käsittelemään erilaisia ​​tilityyppejä: ilmainen (vain julkiset repot) ja maksetut (7 dollaria kuukaudessa) kehittäjätilit, tiimit (9 dollaria käyttäjää kohti kuukaudessa) ja yritykset (21 dollaria käyttäjää kohden kuukaudessa) ). Jos haluat suorittaa GitHub Enterprise -palvelun paikan päällä tai omassa pilvi-ilmentymässä AWS: llä, Microsoft Azurella, Google Cloud Platformilla tai IBM Cloudilla, voit tehdä sen samalla 21 dollaria käyttäjää kohden kuukaudessa kuin isännöity yritystili. GitHub Enterprise lisää muutamia hyödyllisiä ominaisuuksia, kuten sovellusten sisäiset viestit käyttäjille ja LDAP-hakemistoihin integroidun käyttöoikeuksien hallinnan, mutta luopuu GitHub.comin 99,95 prosentin käyttöajasta SLA isännöityille yritystileille.

GitHub vs. Bitbucket

GitHub ei ole ainoa isännöity parannettu Git-palvelu, eikä GitHub Enterprise ole ainoa paikallinen tuote yrityksille. Atlassian Bitbucket kilpailee molempien kanssa hieman halvemmalla hinnoittelulla ja ilmaisella viisijäsenisellä tiimitasolla, joka sisältää rajoittamattomat yksityiset repot ja Bitbucket Pipelinesin käytön jatkuvaan integraatioon. GitHub on suosituin sivusto avoimen lähdekoodin projekteille, ja sillä on paljon suurempi joukko avoimen lähdekoodin kehittäjiä. Bitbucketin hinnoittelu on edullisempaa pienille startup-yrityksille.

GitHub vs. GitLab

GitLab kilpailee sekä GitHubin että Bitbucketin kanssa, sekä isännöityinä että paikan päällä. Pinnalla näyttää siltä, ​​että GitLabilla on enemmän elinkaaritoimintoja kuin muilla, mutta ero Atlassianista häviää enimmäkseen, jos otat mukaan Jiran, kun arvioit Bitbucketia. GitLab tarjoaa Gold-plan-pilviominaisuuksia avoimen lähdekoodin projekteille ilmaiseksi, mutta lisätoiminnot eivät todellakaan korvaa GitHubin suurempaa avoimen lähdekoodin kehittäjäyhteisöä.

GitHub-työpöytä

GitHub Desktop, alla olevan kuvan avulla, helpottaa GitHub.com- ja GitHub Enterprise -tietovarastojesi hallintaa. Vaikka se ei toteudu kaikki Git-komentorivin ja GitHub-web-käyttöliittymän ominaisuuksia, se toteuttaa kaikki toiminnot, jotka teet päivittäin työpöydältäsi, samalla kun osallistut projekteihin. Tyypillisesti kloonaat repot GitHubista GitHub Desktopiin, synkronoit ne tarpeen mukaan, luo haaroja työhösi, sitoutat työsi ja joskus palautat yhden tai useamman sitoumuksen.

Jos haluat työskennellä sellaisten repojen kanssa, joille sinulla ei ole sitoutumis- ja yhteistyöoikeuksia, aloitat yleensä haaroittamalla repon GitHubissa ja kloonaamalla haarukan työpöydällesi. Lisää sitten kaikki tarvitsemasi haarat GitHub Desktopiin, tee haluamasi muutokset, testaa työsi, työnnä komennot takaisin etähaarukkaiseen repoosi ja luo lopuksi vetopyyntö pääprojektiin.

Näet vetopyyntöpainikkeen GitHub Desktop -käyttöliittymän oikeassa yläkulmassa. Neo4j-projektissa voi myös nähdä monia sitoumuksia, jotka olivat haarojen yhdistelmiä tai vetopyyntöjä. Tämä on tyypillistä avoimen lähdekoodin hankkeille, joissa on vain vähän sitoutuneita ja paljon avustajia.

Atom-editori

Voit käyttää mitä tahansa ohjelmointieditoria, jonka haluat muokata koodia, mukaan lukien GitHubin ilmainen, avoimen lähdekoodin hakkeroitava Atom-editori (näkyy alla), joka integroituu hyvin GitHubiin ja GitHub Desktopiin. Voit käyttää Atomia MacOS-, Windows- tai Linux-käyttöjärjestelmissä. Voit avata Atomin GitHub Desktopista napsauttamalla hiiren kakkospainikkeella arkistoa, jota haluat selata tai muokata.

Atom toimittaa noin 90 pakettia, neljä käyttöliittymäteemaa ja kahdeksan syntaksiteemaa. Voit lisätä minkä tahansa 7000 paketista ja 2000 teemasta Atom-asennukseesi. Paketit voivat tukea tiettyjä ohjelmointikieliä, kuten TypeScript, tai lisätä toimintoja, kuten Hydrogen, interaktiivinen koodausympäristö, joka tukee Python-, R-, JavaScript- ja muita Jupyter-ytimiä.

Atom on rakennettu HTML-, JavaScript-, CSS- ja Node.js-integraatiolla. Se toimii Electronilla, joka on kehys alustojen välisten sovellusten rakentamiseen verkkoteknologian avulla. GitHub Desktop toimii myös Electronilla.

GitHub-projektit

Avoimen lähdekoodin ohjelmistoprojektit tarvitsevat usein tapoja valvoa laadunvalvontaa samalla, kun ne hyväksyvät edelleen sitoutumisen ydinryhmän ulkopuolelta. Avustajien tarve on valtava, mutta uusien osallistujien tuominen projektiin pitäen samalla yllä koodikannan eheys on vaikea ja mahdollisesti vaarallinen yritys. Samalla projektin käyttäjien palaute on myös valtava.

GitHubilla on useita mekanismeja, jotka voivat auttaa avoimen lähdekoodin projektien pyörien rasvaamisessa. Esimerkiksi käyttäjät voivat lisätä kysymyksiä GitHub-projektille ilmoittamaan virheistä tai pyytämään ominaisuuksia. Jotkut muut järjestelmät kutsuvat näitä lippuja. Asioiden parissa työskentelevät projektipäälliköt voivat luoda tehtäväluetteloita, osoittaa asioita tietyille avustajille, mainita muut kiinnostuneet avustajat, jotta heille ilmoitetaan muutoksista, lisätä tunnisteita ja lisätä välitavoitteita.

Osallistuaksesi projektiin aloitat periaatteessa aiheesta pää haara, joka sisältää tehdyt muutokset, jotka haluat lisätä projektiin pohja haara ja alusta a vetopyyntö päähaarasta alla olevan kuvan mukaisesti. Sitten työnnät sitoumuksesi ja lisäät ne projektihaaraan. Muut kirjoittajat voivat tarkistaa ehdotetut muutokset, lisätä arvostelukommentteja, osallistua hakupyynnön keskusteluun ja lisätä omat sitoumuksensa vetopyyntöön.

Kun kaikki osapuolet ovat tyytyväisiä ehdotettuihin muutoksiin, sitoutuja voi yhdistää vetopyynnön. Yhdistäminen voi säilyttää kaikki sitoumukset, koota kaikki muutokset yhdeksi sitoumukseksi tai uudelleenaseuttaa sitoumukset päähaarasta perushaaraan. Jos yhdistäminen aiheuttaa ristiriitoja, voit ratkaista ne GitHubissa tai komentorivillä.

GitHubin koodiarvostelut antavat hajautetulle tiimille mahdollisuuden tehdä asynkronista yhteistyötä. Tarkastajille hyödyllisiä GitHub-työkaluja ovat diff (alla olevan kuvakaappauksen alempi puoli), historia (ylempi puoli) ja syytönäkymä (tapa tarkastella sitoutuneen tiedoston kehitystä). GitHubin koodikeskustelut menevät kommentteihin, jotka esitetään yhdessä koodimuutosten kanssa. Jos sisäänrakennetut työkalut eivät riitä projektiisi, voit lisätä koodin tarkistus- ja jatkuvan integrointityökalut GitHub-kauppapaikalta. Marketplace-lisäosat ovat usein ilmaisia ​​avoimen lähdekoodin projekteille.

GitHub sisältää

Luettelot ovat erityisiä GitHub-arkistoja työn jakamiseen (julkinen) tai työn säästämiseen myöhempää uudelleenkäyttöä varten (salaisuus). Ne voivat sisältää yksittäisiä tiedostoja, tiedostojen osia tai kokonaisia ​​sovelluksia. Voit ladata luetteloita, kloonata ne, haarautua ja upottaa ne.

Julkiset olennot löytyvät ja löytyvät hauista. Voit rajata löytämiäsi avainsanoja, mukaan lukien etuliitteet, jotka rajoittavat tuloksia tietyille käyttäjille, vähintään N tähdet, tietyillä tiedostonimillä varustetut ytimet ja niin edelleen.

Salainen luettelo ei ole haettavissa, mutta kuka tahansa, jolla on URL-osoite, voi nähdä ne. Jos haluat todella suojata koodisi, käytä yksityistä arkistoa.

Kuten olemme nähneet, GitHub tarjoaa Git-arkistoja palveluna sekä ominaisuuksia koodin tarkasteluun, projektinhallintaan, integraatioihin muiden kehittäjien työkalujen kanssa, tiimin hallintaan, sosiaaliseen koodaukseen ja dokumentointiin. Vaikka GitHub ei ole luokkansa ainoa tuote, se on hallitseva avoimen lähdekoodin ohjelmistokehityksen arkisto.

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