Skip to content

Kõik WordPressist, veebiarendusest — ja mitte ainult

🚀 Git algajatele: esimene juhend GitHubiga töötamiseks

🚀 Git algajatele: esimene juhend GitHubiga töötamiseks

Sa kirjutasid koodi, kuid kardad töötavat versiooni katki teha. Või töötad meeskonnas ja kaotad järje, kes ja millal muudatusi tegi. Või soovid lihtsalt ühe käsuga ebaõnnestunud katse tagasi võtta.

Kõike seda lahendab Git, versioonihaldussüsteem, milleta ükski kaasaegne projekt hakkama ei saa. Kuid sisenemisbarjäär hirmutab paljusid: terminal, SSH-võtmed, harud, tõmbepäringud.

Tegelikkuses saab põhilise töövoo selgeks ühe tunniga. See juhend ongi täpselt sellest: paigaldamisest kuni esimese push'ini, ilma ülearuse kohevuse ja tarbetu teooriata.

💡 Kiire ülevaade:

  • Paigalda Git oma operatsioonisüsteemile ja määra ühe käsuga oma kasutajanimi
  • Genereeri Ed25519 SSH-võti ja seo see oma GitHubi kontoga
  • Loo repositoorium, seo see kohaliku kaustaga ja tee oma esimene push
  • Klooni olemasolev repositoorium HTTPS-i või SSH kaudu kohalikuks tööks
  • Õpi selgeks moodsad git switch ja git restore käsud git checkout asemel

1. Giti paigaldamine

Git töötab Windowsis, macOS-is ja Linuxis. Kõige usaldusväärsem viis on laadida paigaldaja alla ametlikult saidilt git-scm.com.

Windowsi jaoks laadi alla 64-bitine versioon. Paigaldamise ajal pakub nõustaja valida vaikimisi redaktori, reavahetuste haldamise strateegia ja terminali. Algajale sobivad vaikeväärtused hästi, välja arvatud redaktor: Vimi asemel on mugavam valida Nano või VS Code.

Üksikasjalik juhend Giti paigaldamiseks Windowsile (koos ekraanipiltidega igast nõustaja sammust) on juba meie blogis olemas: kuidas paigaldada Git Windowsile.

Kontrolli, kas Git paigaldus korrektselt:

1git --version

Kui terminal näitab versiooni (näiteks git version 2.48.0), siis paigaldamine õnnestus.

2. Giti esmane seadistamine

Enne esimest commit'i vajab Git tutvustamist. Nimi ja e-post ilmuvad iga muudatuse ajalukku, võimaldades kolleegidel mõista, kes muudatuse autor on.

1git config --global user.name "Your Name"
2git config --global user.email "[email protected]"

Lipp --global kirjutab seaded globaalselt, need kehtivad kõigile masinas olevatele repositooriumidele. Kui konkreetne projekt vajab teistsuguseid andmeid, korda käsku ilma --global-ita, olles projektikaustas.

Veel kaks kasulikku lippu:

1git config --global core.editor "code --wait" # editor for commit messages
2git config --global init.defaultBranch main # default branch is main, not master

Alates 2020. aastast loob GitHub repositooriumid main haruga, mitte master-iga. Rida init.defaultBranch main sünkroniseerib sinu kohaliku paigalduse selle standardiga, vältides edaspidist segadust.

Kontrolli kõike korraga:

1git config --list

3. SSH-võti ja GitHubi ühendus

GitHub keelas paroolide kasutamise Git-toimingute jaoks 2021. aastal. Tänane standard on SSH-võtmed ja algoritmiks on Ed25519 (kompaktsem ja turvalisem kui vananenud RSA).

Genereeri võti:

1ssh-keygen -t ed25519 -C "[email protected]"

Vajuta kolm korda Enterit: tühi paroolifraas sobib kohalikuks arenduseks. Terminal kuvab sõrmejälje ja võtme asukoha:

ssh-keygen käsu väljund Ed25519 võtmega terminalis

Nüüd kopeeri avalik võti lõikepuhvrisse. Käsk sõltub operatsioonisüsteemist:

macOS:

1pbcopy < ~/.ssh/id_ed25519.pub

Linux (Ubuntu):

1cat ~/.ssh/id_ed25519.pub

Windows (Git Bash):

1clip < ~/.ssh/id_ed25519.pub

Jääb üle vaid võti GitHubi lisada. Logi oma kontole sisse, klõpsa paremas ülanurgas oma avataril ja vali Settings:

GitHubi konto seadete menüü, kus on Settings üksus

Külgribal ava vahekaart SSH and GPG keys:

SSH ja GPG võtmete haldamise leht GitHubi seadetes

Klõpsa rohelist nuppu New SSH Key. Väljale Title anna võtmele arusaadav nimi (näiteks „Asus Laptop"), väljale Key kleebi lõikepuhvri sisu ja klõpsa Add SSH Key.

Kontrolli ühendust:

Vastus Hi username! You've successfully authenticated... tähendab, et kõik on seadistatud.

4. Repositooriumi loomine ja esimene sünkroniseerimine

Lehel github.com/new loo uus repositoorium: määra nimi, jäta avalikuks või vali privaatne, ÄRA linnukest „Add a README file" ette pane (muidu tekib esimesel push'imisel konflikt).

Nüüd navigeeri terminalis projekti kausta ja käivita järjest:

1git init # Git initialization in folder
2git add . # index all files
3git commit -m "First commit" # fix state

Seo kohalik kaust kaugrepositooriumiga ja lükka muudatused üles:

1git remote add origin [email protected]:yourname/yourproject.git
2git push -u origin main

Lipp -u jätab meelde seose „kohalik haru → kaugrepositoorium". Edaspidi piisab lihtsalt git push-ist.

Ära unusta .gitignore'it, see loetleb failid, mis ei tohiks repositooriumisse sattuda (logid, IDE ajutised failid, sõltuvuste kaustad nagu node_modules/). Valmis malle igale tehnoloogiapaketile leiab lehelt gitignore.io.

5. Repositooriumi kloonimine

Kloonimine on kellegi teise (või enda, kuid GitHubis oleva) repositooriumi allalaadimine kohalikku masinasse koos kogu muudatuste ajalooga.

Repositooriumi lehel klõpsa rohelist Code nuppu:

Kloonimise nupp GitHubi repositooriumis

Avaneb kolme valikuga aken. Vali SSH (kui seadistasid 3. sammus võtme) või HTTPS:

Kloonimise aken HTTPS ja SSH sakkidega GitHubis

Kopeeri URL ja käivita terminalis:

1git clone [email protected]:username/repository.git

Git loob kausta repositooriumi nimega ja laeb alla kõik failid koos ajalooga. Pärast kloonimist saad kohe tööd alustada.

Igapäevaseks harude vahel navigeerimiseks kasuta moodsaid käske:

1git switch feature-branch # switch to existing branch
2git switch -c new-feature # create new branch and switch
3git restore file.txt # roll back changes in file

Need asendasid Git 2.23-s ülekoormatud git checkout'i ja on sellest ajast saanud standardiks. git checkout pole kuhugi kadunud, kuid switch ja restore on ohutumad ja intuitiivsemad.

Kui eelistad graafilist liidest, pakub GitHub Desktop kloonimise, commit'ide ja harude visuaalset haldust ilma terminalita.

Video: täielik Git'i ja GitHub'i kursus 2 tunniga

Materjali kinnistamiseks vaata põhjalikku ingliskeelset videoõpetust, mis hõlmab kõike alates paigaldamisest kuni keerukate meeskonnatöö stsenaariumiteni:

⁉️🤔 Korduma kippuvad küsimused

Mille poolest Git erineb GitHubist?

Git on versioonihaldusprogramm, mis töötab sinu arvutis. GitHub on veebiteenus, mis hoiustab Git'i repositooriume pilves ja lisab koostöövahendid: tõmbepäringud (pull request), koodiülevaatus, veahaldus (issues). Alternatiivid on GitLab ja Bitbucket. Git saab täiesti ilma GitHubita töötada, kuid GitHub ei saa eksisteerida ilma Gitita.

Kas ma pean õppima käsurida, kui GitHub Desktop on olemas?

GitHub Desktop katab enamiku igapäevastest toimingutest, kuid terminal annab täieliku kontrolli. Käsud nagu git rebase, git stash ja git cherry-pick ei ole graafilises liideses alati ilmselged. CI/CD, serverite ja DevOps'i stsenaariumid toimivad ainult käsurea kaudu. Meie soovitus: alusta Desktopiga ja õpi käsurida paralleelselt, 2-3 käsku korraga.

Kas ma saan olemasolevas projektis master-haru ümber nimetada main-iks?

Jah, ja see on tavapraktika. Käivita: git branch -m master main, seejärel git push -u origin main ja git push origin --delete master. Pärast seda muuda GitHubi repositooriumi seadetes vaikeharuks main.

Mida teha, kui Git keeldub tõukest (push) veaga „failed to push some refs"?

Peaaegu alati on põhjuseks see, et kaugrepositooriumis on committe, mida sul lokaalselt ei ole. Esmalt tee git pull --rebase origin main, lahenda konfliktid, kui neid on, seejärel korda git push. Lipp --rebase asetab sinu commitid kaugrepositooriumi omade peale, hoides ajaloo lineaarsena.

Kuidas tühistada viimane commit, mida pole veel GitHubi tõugatud?

git reset --soft HEAD~1, commit kaob, kuid muudatused jäävad indeksisse (staged). Saad need parandada ja uuesti commitida. Kui muudatusi pole üldse vaja, kasuta git reset --hard HEAD~1, kuid ole ettevaatlik: hard reset viskab failid pöördumatult minema.

Mis saab edasi: sinu esimene töövoog

Üldpilt pärast seda juhendit: Git on paigaldatud, SSH-võti on seotud, repositoorium on loodud ja sünkroniseeritud. Oled jõudnud nullist töövalmis keskkonnani.

Järgmine on praktika. Alusta väikeselt: tee testprojekti kolm sisukat commiti, ava haru käsuga git switch -c, lisa fail ja saada tõmbepäring (pull request), et see main-harusse liita. Täpselt see tsükkel (commit → haru → PR → liitmine) kordub igas meeskonnas iga päev.

Ja kui oled end mugavalt tundma õppinud, tule meie juurde tagasi edasijõudnute teemade jaoks: git rebase, interaktiivne stash, liitmiskonfliktide lahendamine ja CI/CD seadistamine GitHub Actionsiga.