19 KiB
Įvadas į GitHub
Ši pamoka apima GitHub pagrindus – platformą, skirtą jūsų kodo talpinimui ir pakeitimų valdymui.
Sketchnote sukūrė Tomomi Imura
Prieš paskaitą: testas
Įvadas
Šioje pamokoje aptarsime:
- kaip sekti darbą, kurį atliekate savo kompiuteryje
- kaip dirbti su kitais projektuose
- kaip prisidėti prie atvirojo kodo programinės įrangos
Reikalavimai
Prieš pradėdami, patikrinkite, ar Git yra įdiegtas. Terminale įveskite:
git --version
Jei Git nėra įdiegtas, atsisiųskite Git. Tada sukonfigūruokite savo vietinį Git profilį terminale:
git config --global user.name "jūsų-vardas"git config --global user.email "jūsų-el.paštas"
Norėdami patikrinti, ar Git jau sukonfigūruotas, galite įvesti:
git config --list
Jums taip pat reikės GitHub paskyros, kodo redaktoriaus (pvz., Visual Studio Code) ir terminalo (arba komandų eilutės).
Eikite į github.com ir susikurkite paskyrą, jei dar neturite, arba prisijunkite ir užpildykite savo profilį.
✅ GitHub nėra vienintelė kodo saugykla pasaulyje; yra ir kitų, tačiau GitHub yra geriausiai žinoma.
Pasiruošimas
Jums reikės aplanko su kodo projektu jūsų vietiniame kompiuteryje (nešiojamame ar stacionariame) ir viešos saugyklos GitHub, kuri bus pavyzdys, kaip prisidėti prie kitų projektų.
Kodo valdymas
Tarkime, turite aplanką su kodo projektu vietiniame kompiuteryje ir norite pradėti sekti savo progresą naudodami git – versijų valdymo sistemą. Kai kurie žmonės lygina git naudojimą su meilės laiško rašymu sau ateityje. Skaitydami savo commit žinutes po dienų, savaičių ar mėnesių, galėsite prisiminti, kodėl priėmėte tam tikrą sprendimą, arba „atsukti“ pakeitimą – žinoma, jei rašote geras commit žinutes.
Užduotis: Sukurkite saugyklą ir commit'inkite kodą
Peržiūrėkite vaizdo įrašą
-
Sukurkite saugyklą GitHub. GitHub.com, skirtuke „Repositories“ arba viršutiniame dešiniajame navigacijos juostoje, raskite mygtuką new repo.
- Suteikite savo saugyklai (aplankui) pavadinimą
- Pasirinkite create repository.
-
Eikite į savo darbo aplanką. Terminale pereikite į aplanką (dar vadinamą direktorija), kurį norite pradėti sekti. Įveskite:
cd [name of your folder] -
Inicializuokite git saugyklą. Savo projekte įveskite:
git init -
Patikrinkite būseną. Norėdami patikrinti saugyklos būseną, įveskite:
git statusrezultatas gali atrodyti maždaug taip:
Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: file.txt modified: file2.txtPaprastai
git statuskomanda nurodo, kurie failai yra paruošti išsaugoti saugykloje arba turi pakeitimų, kuriuos galbūt norėsite išsaugoti. -
Pridėkite visus failus sekimui Tai dar vadinama failų „staging“ arba pridėjimu į „staging area“.
git add .git addsu.argumentu nurodo, kad visi jūsų failai ir pakeitimai bus sekami. -
Pridėkite pasirinktus failus sekimui
git add [file or folder name]Tai leidžia pridėti tik pasirinktus failus į „staging area“, kai nenorite commit'inti visų failų vienu metu.
-
Atšaukite visų failų „staging“
git resetŠi komanda leidžia atšaukti visų failų „staging“ vienu metu.
-
Atšaukite konkretaus failo „staging“
git reset [file or folder name]Ši komanda leidžia atšaukti tik konkretaus failo „staging“, kurio nenorite įtraukti į kitą commit'ą.
-
Išsaugokite savo darbą. Šiuo metu pridėjote failus į vadinamąją staging area. Tai vieta, kur Git seka jūsų failus. Norėdami pakeitimą padaryti nuolatiniu, turite commit'inti failus. Tai atliekama sukuriant commit su
git commitkomanda. Commit atspindi išsaugojimo tašką jūsų saugyklos istorijoje. Įveskite šią komandą, kad sukurtumėte commit:git commit -m "first commit"Tai commit'ina visus jūsų failus, pridedant žinutę „first commit“. Ateities commit žinutėse norėsite būti labiau aprašomi, kad perteiktumėte, kokio tipo pakeitimą atlikote.
-
Susiekite savo vietinę Git saugyklą su GitHub. Git saugykla yra naudinga jūsų kompiuteryje, tačiau tam tikru momentu norėsite turėti failų atsarginę kopiją kažkur kitur ir taip pat pakviesti kitus žmones dirbti su jūsų saugykla. Viena puiki vieta tai padaryti yra GitHub. Prisiminkite, kad jau sukūrėme saugyklą GitHub, todėl vienintelis dalykas, kurį reikia padaryti, yra susieti vietinę Git saugyklą su GitHub. Komanda
git remote addtai atliks. Įveskite šią komandą:Pastaba: prieš įvedant komandą eikite į savo GitHub saugyklos puslapį, kad rastumėte saugyklos URL. Jį naudosite žemiau esančioje komandoje. Pakeiskite
https://github.com/username/repository_name.gitsavo GitHub URL.git remote add origin https://github.com/username/repository_name.gitTai sukuria remote, arba ryšį, pavadintą „origin“, nukreiptą į anksčiau sukurtą GitHub saugyklą.
-
Siųskite vietinius failus į GitHub. Iki šiol sukūrėte ryšį tarp vietinės saugyklos ir GitHub saugyklos. Siųskime šiuos failus į GitHub naudodami šią komandą
git push, kaip parodyta:Pastaba: jūsų šakos pavadinimas pagal numatymą gali skirtis nuo
main.git push -u origin mainTai siunčia jūsų commit'us iš „main“ šakos į GitHub. Nustatant
upstreamšaką, įskaitant-ukomandoje, sukuriamas ryšys tarp jūsų vietinės šakos ir nuotolinės šakos, todėl ateityje galėsite naudoti git push arba git pull nenurodydami šakos pavadinimo. Git automatiškai naudos „upstream“ šaką, ir ateityje nereikės aiškiai nurodyti šakos pavadinimo komandose. -
Pridėkite daugiau pakeitimų. Jei norite toliau daryti pakeitimus ir siųsti juos į GitHub, jums tereikės naudoti šias tris komandas:
git add . git commit -m "type your commit message here" git pushPatarimas: galbūt norėsite naudoti
.gitignorefailą, kad išvengtumėte failų, kurių nenorite sekti, rodymo GitHub – pavyzdžiui, tą užrašų failą, kurį saugote tame pačiame aplanke, bet kuris neturi vietos viešoje saugykloje..gitignorefailų šablonus galite rasti .gitignore templates.
Commit žinutės
Puiki Git commit žinutės antraštė užbaigia šį sakinį: Jei pritaikyta, šis commit atliks <jūsų antraštė čia>
Antraštėje naudokite imperatyvą, esamą laiką: „keisti“, o ne „pakeista“ ar „keičia“.
Kaip ir antraštėje, kūne (neprivaloma) taip pat naudokite imperatyvą, esamą laiką. Kūnas turėtų apimti pakeitimo motyvaciją ir palyginti tai su ankstesniu elgesiu. Jūs aiškinate kodėl, o ne kaip.
✅ Skirkite kelias minutes naršymui GitHub. Ar galite rasti tikrai puikią commit žinutę? Ar galite rasti labai minimalų commit'ą? Kokią informaciją, jūsų manymu, svarbiausia ir naudingiausia perteikti commit žinutėje?
Užduotis: Bendradarbiaukite
Pagrindinė priežastis, kodėl dalinatės dalykais GitHub, yra galimybė bendradarbiauti su kitais kūrėjais.
Darbas su kitais projektuose
Peržiūrėkite vaizdo įrašą
Savo saugykloje eikite į Insights > Community, kad pamatytumėte, kaip jūsų projektas atitinka rekomenduojamus bendruomenės standartus.
Štai keletas dalykų, kurie gali pagerinti jūsų GitHub saugyklą:
- Aprašymas. Ar pridėjote projekto aprašymą?
- README. Ar pridėjote README? GitHub pateikia rekomendacijas, kaip rašyti README.
- Gairės prisidėjimui. Ar jūsų projektas turi prisidėjimo gaires?
- Elgesio kodeksas. Elgesio kodeksą,
- Licencija. Galbūt svarbiausia – licenciją?
Visi šie ištekliai bus naudingi naujų komandos narių įtraukimui. Tai paprastai yra dalykai, kuriuos nauji prisidėtojai peržiūri prieš net žiūrėdami į jūsų kodą, kad sužinotų, ar jūsų projektas yra tinkama vieta jų laikui skirti.
✅ README failai, nors jų paruošimas užtrunka, dažnai yra ignoruojami užimtų prižiūrėtojų. Ar galite rasti ypač aprašomą README pavyzdį? Pastaba: yra keletas įrankių, kurie padeda kurti gerus README, kuriuos galbūt norėsite išbandyti.
Užduotis: Sujunkite kodą
Prisidėjimo dokumentai padeda žmonėms prisidėti prie projekto. Jie paaiškina, kokio tipo prisidėjimų ieškote ir kaip veikia procesas. Prisidėtojai turės atlikti kelis veiksmus, kad galėtų prisidėti prie jūsų saugyklos GitHub:
- Fork'inkite savo saugyklą. Tikriausiai norėsite, kad žmonės fork'intų jūsų projektą. Fork'inimas reiškia jūsų saugyklos kopijos sukūrimą jų GitHub profilyje.
- Klonuokite. Iš ten jie klonuos projektą į savo vietinį kompiuterį.
- Sukurkite šaką. Norėsite paprašyti jų sukurti šaką savo darbui.
- Sutelkti pakeitimą į vieną sritį. Paprašykite prisidėtojų sutelkti savo prisidėjimus į vieną dalyką vienu metu – taip padidėja tikimybė, kad galėsite sujungti jų darbą. Įsivaizduokite, kad jie pataiso klaidą, prideda naują funkciją ir atnaujina kelis testus – o kas, jei norite arba galite įgyvendinti tik 2 iš 3 arba 1 iš 3 pakeitimų?
✅ Įsivaizduokite situaciją, kurioje šakos yra ypač svarbios rašant ir pateikiant gerą kodą. Kokius naudojimo atvejus galite sugalvoti?
Pastaba: būkite pokytis, kurį norite matyti pasaulyje, ir kurkite šakas savo darbui. Bet kokie commit'ai, kuriuos atliksite, bus atlikti šakoje, kurioje šiuo metu esate „patikrintas“. Naudokite
git status, kad pamatytumėte, kurioje šakoje esate.
Eikime per prisidėtojo darbo eigą. Tarkime, prisidėtojas jau fork'ino ir klonavo saugyklą, todėl jie turi Git saugyklą, paruoštą darbui, savo vietiniame kompiuteryje:
-
Sukurkite šaką. Naudokite komandą
git branch, kad sukurtumėte šaką, kurioje bus pakeitimai, kuriuos jie ketina prisidėti:git branch [branch-name] -
Pereikite į darbo šaką. Pereikite į nurodytą šaką ir atnaujinkite darbo direktoriją naudodami
git switch:git switch [branch-name] -
Dirbkite. Šiuo metu norite pridėti savo pakeitimus. Nepamirškite apie juos pranešti Git naudodami šias komandas:
git add . git commit -m "my changes"Įsitikinkite, kad suteikėte savo commit'ui gerą pavadinimą – tiek dėl savęs, tiek dėl saugyklos prižiūrėtojo, kuriam padedate.
-
Sujunkite savo darbą su
mainšaka. Tam tikru momentu baigiate darbą ir norite sujungti savo darbą sumainšaka.Mainšaka tuo metu galėjo pasikeisti, todėl įsitikinkite, kad pirmiausia ją atnaujinate iki naujausios versijos naudodami šias komandas:git switch main git pullŠiuo metu norite įsitikinti, kad bet kokie konfliktai, situacijos, kai Git negali lengvai sujungti pakeitimų, įvyksta jūsų darbo šakoje. Todėl vykdykite šias komandas:
git switch [branch_name] git merge mainKomanda
git merge mainįtrauks visus pakeitimus išmainį jūsų šaką. Tikimės, kad galėsite tiesiog tęsti. Jei ne, VS Code parodys, kur Git yra sutriktas, ir jūs tiesiog pakeisite paveiktus failus, kad nurodytumėte, kuris turinys yra tiksliausias.Norėdami pereiti į kitą šaką, naudokite modernią komandą
git switch:git switch [branch_name] -
Siųskite savo darbą į GitHub. Siųsti savo darbą į GitHub reiškia du dalykus: stumti savo šaką į savo saugyklą ir tada atidaryti PR (Pull Request).
git push --set-upstream origin [branch-name]Aukščiau pateikta komanda sukuria šaką jūsų fork'intoje saugykloje.
-
Atidarykite PR. Toliau norite atidaryti PR. Tai padarysite naršydami į „forked“ repo GitHub platformoje. GitHub'e pamatysite pranešimą, kuriame klausiama, ar norite sukurti naują PR, spustelėkite jį ir būsite nukreipti į sąsają, kurioje galite pakeisti commit žinutės pavadinimą, pridėti tinkamesnį aprašymą. Dabar repo, kurį „forkinote“, palaikytojas pamatys šį PR ir tikėkimės jis įvertins ir sujungs jūsų PR. Dabar esate prisidėjęs prie projekto, valio :)
-
Išvalymas. Laikoma gera praktika išvalyti po to, kai sėkmingai sujungiate PR. Norite išvalyti tiek savo vietinę šaką, tiek šaką, kurią įkėlėte į GitHub. Pirmiausia ištrinkite ją vietoje naudodami šią komandą:
git branch -d [branch-name]Įsitikinkite, kad nuėjote į GitHub puslapį „forked“ repo ir pašalinote nuotolinę šaką, kurią ką tik įkėlėte.
Pull request gali atrodyti kaip keistas terminas, nes iš tikrųjų norite įkelti savo pakeitimus į projektą. Tačiau palaikytojas (projekto savininkas) arba pagrindinė komanda turi apsvarstyti jūsų pakeitimus prieš juos sujungiant su projekto „main“ šaka, todėl iš esmės jūs prašote palaikytojo priimti sprendimą dėl pakeitimo.
Pull request yra vieta, kur galima palyginti ir aptarti šakos įvestus skirtumus, atlikti peržiūras, palikti komentarus, integruoti testus ir dar daugiau. Geras pull request laikosi maždaug tų pačių taisyklių kaip commit žinutė. Galite pridėti nuorodą į problemą „issue tracker“, kai jūsų darbas, pavyzdžiui, išsprendžia problemą. Tai daroma naudojant #, po kurio seka jūsų problemos numeris. Pavyzdžiui, #97.
🤞Tikėkimės, kad visi patikrinimai praeis ir projekto savininkas(-ai) sujungs jūsų pakeitimus į projektą🤞
Atnaujinkite savo dabartinę vietinę darbo šaką su visais naujais commit'ais iš atitinkamos nuotolinės šakos GitHub'e:
git pull
Kaip prisidėti prie atvirojo kodo
Pirmiausia, suraskime GitHub'e jus dominančią saugyklą (arba repo), prie kurios norėtumėte prisidėti pakeitimu. Norėsite nukopijuoti jos turinį į savo kompiuterį.
✅ Geras būdas rasti „pradedantiesiems draugiškas“ saugyklas yra ieškoti pagal žymą 'good-first-issue'.
Yra keli būdai kopijuoti kodą. Vienas iš būdų yra „klonuoti“ saugyklos turinį naudojant HTTPS, SSH arba GitHub CLI (komandinės eilutės sąsają).
Atidarykite terminalą ir klonuokite saugyklą taip:
git clone https://github.com/ProjectURL
Norėdami dirbti su projektu, pereikite į tinkamą aplanką:
cd ProjectURL
Taip pat galite atidaryti visą projektą naudodami Codespaces, GitHub integruotą kodo redaktorių / debesų kūrimo aplinką, arba GitHub Desktop.
Galiausiai, galite atsisiųsti kodą suspaustame aplanke.
Keletas įdomių dalykų apie GitHub
GitHub'e galite pažymėti žvaigždute, stebėti ir/arba „forkinti“ bet kurią viešą saugyklą. Savo pažymėtas saugyklas galite rasti viršutiniame dešiniajame išskleidžiamajame meniu. Tai tarsi žymėjimas, bet skirta kodui.
Projektai turi problemų sekimo įrankį, dažniausiai GitHub'e, „Issues“ skirtuke, nebent nurodyta kitaip, kur žmonės aptaria su projektu susijusias problemas. O „Pull Requests“ skirtukas yra vieta, kur žmonės aptaria ir peržiūri vykstančius pakeitimus.
Projektai taip pat gali turėti diskusijas forumuose, el. pašto sąrašuose arba pokalbių kanaluose, tokiuose kaip Slack, Discord ar IRC.
✅ Apžiūrėkite savo naują GitHub repo ir išbandykite keletą dalykų, pvz., nustatymų redagavimą, informacijos pridėjimą prie repo ir projekto sukūrimą (pvz., Kanban lentą). Galite daug ką nuveikti!
🚀 Iššūkis
Dirbkite poroje su draugu prie vienas kito kodo. Sukurkite projektą kartu, „forkinkite“ kodą, sukurkite šakas ir sujunkite pakeitimus.
Po paskaitos testas
Apžvalga ir savarankiškas mokymasis
Skaitykite daugiau apie prisidėjimą prie atvirojo kodo programinės įrangos.
Praktikuokitės, praktikuokitės, praktikuokitės. GitHub turi puikius mokymosi kursus, prieinamus per skills.github.com:
Taip pat rasite daugiau pažangių kursų.
Užduotis
Užbaikite Pirmos savaitės GitHub'e kursą
Atsakomybės apribojimas:
Šis dokumentas buvo išverstas naudojant AI vertimo paslaugą Co-op Translator. Nors siekiame tikslumo, prašome atkreipti dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojama naudoti profesionalų žmogaus vertimą. Mes neprisiimame atsakomybės už nesusipratimus ar neteisingą interpretaciją, atsiradusią dėl šio vertimo naudojimo.



