Kuigi Giti kasutajatel on valida kümnete alustamisjuhendite vahel ja GitHub pakub mitmeid oma juhendeid, ei ole siiski lihtne leida kasulikke näpunäiteid arendajatele, kes soovivad Giti ja GitHubiga nutikamalt töötada. Parandame selle.
Neile, kes pole Giti või GitHubi tuttavad, annavad järgmised paar lõiku piisavalt tausta, et näpunäiteid mõista. Selle artikli lõpus loetleme kümmekond kasulikku ressurssi.
Git on hajutatud versioonihaldussüsteem, mille algselt kirjutas Linus Torvalds 2005. aastal Linuxi kerneli kogukonna jaoks ja selle abiga. Ma ei ole siin selleks, et teid Gitis müüa, nii et ma säästan teid sellest, kui kiire ja väike, paindlik ja populaarne see on, kuid peaksite seda teadma, kui kloonite Giti hoidla (lühidalt repo) , saate oma arvutisse kogu versiooniajaloo, mitte ainult hetktõmmise ühest harust korraga.
Git sai alguse käsureatööriistana, mis sobis oma päritoluga Linuxi kerneli kogukonnast. Kui soovite, saate endiselt kasutada Giti käsurida, kuid te ei pea seda tegema. Täpsemalt, kui kasutate hostina GitHubi, saate Windowsis või Macis kasutada tasuta GitHubi töölauaklienti. Teisest küljest töötab Giti käsurida iga hosti jaoks ja see on eelinstallitud enamikesse Maci ja Linuxi süsteemidesse.
Ainult teie saate otsustada, kas teile on kõige mugavam kasutada käsurida või graafilise kasutajaliidesega kohalikku klienti. Kui teile meeldib GUI, võiksite lisaks GitHubi kliendile (Windows ja Mac) kaaluda ka SourceTree (Windows ja Mac, tasuta), TortoiseGit (ainult Windows, tasuta) ja Gitbox (ainult Mac, 14,99 $) kasutamist. Või võite kasutada redaktorit või IDE-d, mis toetab Giti sisemiselt (vt näpunäidet nr 11).
Git/GitHubi nõuanne nr 1: kloonige peaaegu kõike
GitHubist ja teistest avalikest Giti hoidlatest on saadaval palju huvitavaid projekte, mida saate vabalt oma arvutisse kloonida. Miks sa tahaksid seda teha? Üks põhjus on õppida midagi huvipakkuvas keeles kodeerimisstiili, tavade ja tööriistade kohta, sealhulgas logi kommenteerimise stiili kohta (vt nõuannet nr 4). Teine põhjus on õppida, kuidas antud projekt oma eesmärke saavutab. Kolmas põhjus, kui litsents lubab teil seda teha ja peaks teie eesmärkide jaoks mõistlik olema, oleks projekti kaasamine teie enda ettevõtmisse või tootesse. Muide, kontrollige litsentsi veel kord, et teil ei tekiks hiljem vastavusprobleeme.
Määratlus
git kloon manuaali lehelt:
Kloonib hoidla vastloodud kataloogi, loob iga kloonitud hoidla haru jaoks kaugjälgimise harud (nähtav kasutades
git filiaal -r) ning loob ja kontrollib välja esialgse haru, mis on eraldatud kloonitud hoidla praegu aktiivsest harust.
Klooni järel tasandik
git tuua ilma argumentideta värskendab kõiki kaugjälgimise harusid ja a
git pull ilma argumentideta liidab kaugjuhtiva juhtharu ka praeguse peaharuga, kui see on olemas.
Git/GitHubi näpunäide nr 2: tõmmake sageli
Üks lihtsamaid viise Gitiga (ja tõepoolest iga versioonihaldussüsteemiga) enda jaoks segadust tekitada on lasta failidel sünkroonist välja minna. Kui sa
git pull sageli hoiate oma repo koopia ajakohasena ja teil on võimalus liita oma muudetud kood teiste muudatustega, samal ajal kui ühendamist on lihtne mõista ja teostada – ideaaljuhul, kui see on nii lihtne, et seda saab teha automaatselt. Selle näpunäite kohaselt tuleb jälgida oma projekti olekut. Paljud Giti kliendid näitavad teile automaatselt, millal peate kursis püsimiseks värskendama.
Git/GitHubi nõuanne nr 3: pühenduge varakult ja sageli
Kinnitamine on projekti üksikasjalik värskendus, mis sisaldab ühte või mitut muudatust ühes või mitmes failis. Mõelge sellele kui tehtud tööühiku kirjele, mida saab projektile kui loogilisele tervikule rakendada või sellest eemaldada. Tehke kõik tehtud loogilised muudatused, isegi enne selle testimist. Kohustused kehtivad ainult teie kohalikule hoidlale. Selle näpunäidete tagajärgede kohta vaadake näpunäiteid nr 4 ja 5.
Määratlus
git commit manuaali lehelt:
Salvestab indeksi praeguse sisu uude sisseviimisse koos kasutaja logisõnumiga, mis kirjeldab muudatusi.
Git/GitHubi näpunäide nr 4: kommenteerige oma kohustusi nii, nagu paluksite teistel oma omi kommenteerida
Kodeerijaid on 10 tüüpi: need, kes kommenteerivad oma kohustusi, ja need, kes seda ei tee. (Vana nali. Vihje: mis alust ma kasutan?)
Tunnistan vabalt, et olen heade täitmislogisõnumite pooldaja. Seadistasin oma hoidlad nõudma sõnumeid iga kinnistamise kohta ja olen teadaolevalt saatnud välja tüütuid hilisõhtuseid sõnumeid, kui kohustused langevad koos logidega järjekorras "xx". Kui olete seda tüüpi arendaja, kes arvab, et (1) kood peaks enda eest rääkima ja (2) tekstisisesed kommentaarid on palju olulisemad kui muudatuste logid, proovige kloonida hoidla, mida te pole kunagi varem näinud, ja tuvastada hiljutine kohustus, mis võis põhjustada viimati postitatud probleemi ilma kogu koodi lugemata. Nagu näete, on täpsed sidumislogid topelt-pluss head.
Git/GitHubi näpunäide nr 5: vajutage, kui teie muudatusi testitakse
Halvim Gitiga seotud viga, millest mul on kunagi olnud õnnetus teada saada, juhtus siis, kui allhankeettevõte läks Subversionilt üle, kuid ei õpetanud oma arendajaid hajutatud allika juhtimise ja tsentraliseeritud allika juhtimise erinevuste kohta. Umbes kuu aega hiljem tekkisid projektis veidrad vead, mida keegi ei suutnud tuvastada. Igapäevastel püstijalanõupidamistel protestisid valesti käitunud rakenduse piirkonna eest vastutavad arendajad: "Parandasin selle kaks nädalat tagasi!" või süüdistada teist arendajat, et ta ei vaevunud tegema muudatusi, mille nad olid nii hoolikalt kontrollinud.
Lõpuks tuvastas keegi probleemi ja õpetas kõigile arendajatele, kuidas ja millal
suruma nende kohustused: Lühidalt, kui kohustused testitakse edukalt kohalikus järgus. Seejärel korraldas ettevõte kahepäevase liitmisfestivali, enne kui suutis värskendatud integreeritud toote luua ja juurutada.
Git/GitHubi näpunäide nr 6: hargnege vabalt
Üks Giti suurimaid eeliseid mõne teise versioonihaldussüsteemi ees on see, et ühendamine toimib tavaliselt hästi, vähemalt osaliselt seetõttu, et Git valib ühendamiseks automaatselt parima ühise esivanema. Enamik tarkvaraarendajaid peab oma projektides sagedamini harusid looma. See peaks olema igapäevane rutiinne sündmus, mitte ahastava kõigi käte strateegiakohtumise teema. Tõenäoliselt ei kaasne ühendamine ületamatuid probleeme, kui haruprojekt on lõpetatud, vastu võetud ja valmis põhiprojekti liikuma.
Ma tean, et see nõuab veidi kohandamist, eriti kui olete sattunud ettevõttesse, mis juhib CVS-iga lähtekoodi. Aga proovi seda. See on palju parem kui see, et kliendid näevad kogemata teie pooleliolevat katsekoodi, kui katkise vea tõttu tuleb magistraalprojekt avaldada. (See artikkel selgitab hästi hargnemist ja ühendamist.)
Git/GitHubi nõuanne nr 7: ühendage hoolikalt
Kuigi Gitiga liitmised toimivad tavaliselt hästi, võib teil aeg-ajalt tekkida raskusi, kui teete neid mõtlemata. Esimene samm on veenduda, et teil pole sooritamata muudatusi. Alates
git merge manuaalne leht:
Enne väliste muudatuste rakendamist peaksite saama oma tööd heas vormis ja kohapeal pühenduma, et konfliktide tekkimine ei jääks segaseks. Vaata ka
git-stash.
Vaata ka näpunäidet nr 8.
Isegi kui see kõik läheb lõuna ajal a
git merge, sa ei ole voolitud:
Kui proovisite liitmist, mis tõi kaasa keerukad konfliktid ja soovite otsast alustada, saate sellega taastada
git merge — katkestada.
Järelkäsk
git merge on tavaliselt
git mergetool, eeldades, et teile meeldib liitmiseks kasutada GUI-d. Kui eelistate vana kooli meetodit, saate redigeerida faile, mis on vastuolus oma lemmikprogrammeerimisredaktoriga, eemaldades täielikult
<<<<<<<,
=======ja
>>>>>>> read, salvestage muudetud failid ja
git lisada iga parandatud fail.
Git/GitHubi näpunäide nr 8: hoidke enne haru vahetamist alles
Tarkvaraarendaja töövoog on harva lineaarne. Kasutajad võivad vigadest teatada, juhtidel on jultumust seada prioriteediks muud piletid kui see, mille kallal töötamiseks valisite, ja te ise võite muuta oma meelt, mida soovite teha.
Siin on kolm faili, mis on vabastatud ja neljas fail on muudetud, kuid mittetöötavas olekus. (
git staatus käsk ütleb teile kõike seda, kui te ei mäleta, kus te olite.) Järsku peate töötama tootmisversiooni veaparanduse kallal. Peate otse filiaale vahetama, kuid te ei saa seda teha. Teie töökataloog on räpane ja teil on kaks tundi tööd, mida te ei taha kaotada.
Sisenema
git stash. Voilà! Nüüd on teil kõik muudatused salvestatud WIP-i (töö pooleliolevasse) harusse ja saate oma puhtast kataloogist lülituda tootmisharule. Kui olete selle lõpetanud, lülituge tagasi samale kohale, kus olite
git stash kohaldada.
Git/GitHubi näpunäide nr 9: kasutage sisulõikude ja pastade jagamiseks
GitHubi „põhimõtted” – jagatud koodilõigud – ei ole Giti funktsioon, kuid need kasutavad Giti. Kõik sisud on Giti hoidlad ja GitHub Gist muudab nende jagamise lihtsaks. Saate otsida Gist avalikke põhiteemasid teema, programmeerimiskeele, kahvli oleku ja tärniga tähistatud oleku järgi. Samuti saate luua salajasi sisu ja jagada neid URL-i kaudu.
Git/GitHubi nõuanne nr 10: uurige GitHubi
Paljudel huvitavatel avatud lähtekoodiga projektidel on GitHubis hoidlad. Explore GitHub pakub mõne neist leidmiseks sirvimisliidest, kuid enamasti on selle repode leidmiseks lihtsam tippida otsingukasti paar tähte projekti nimest. Näiteks tippige
jq või
tagasi või
ang et leida kolm peamist avatud lähtekoodiga JavaScripti raamistikku.
Git/GitHubi nõuanne nr 11: panustage avatud lähtekoodiga projektidesse
Niikaua kui sirvite avatud lähtekoodiga projekte, miks mitte anda oma panus nendesse? See pole nii raske, kui arvate, ja saate palju teada. Näiteks võite kloonida projekti jquery/jquery (jQuery Core) ja sirvida faili README.MD. Ülaosas näete järgmist:
Avatud lähtekoodiga tarkvaraarenduse vaimus julgustab jQuery alati kogukonna koodi panustama. Alustamiseks ja enne koodi kirjutamise alustamist lugege kindlasti hoolikalt läbi need olulised panuse juhised...
Sellele järgneb kolm linki. Esimene neist kolmest paneb teid üsna kiiresti tööle. Mitte iga avatud lähtekoodiga projekt ei esita plaani nii selgelt, kuid nad kõik proovivad.
Saage aru, mis vahe on panustaja ja pühenduja vahel. Üks panustaja on allkirjastanud nõutavad lepingud ja andnud oma panuse projektile kättesaadavaks. Tellija on volitatud pakutava panuse projekti hoidlasse tegelikult siduma. Kuna volitaja kontrollib teie panust viivitusega ja te ei soovi oma põhiharu siduda, peaksite enne tõmbamistaotluse saatmist tegema muudatused teises harus (vt nõuannet nr 6) (vt näpunäidet nr 16).