{"id":67,"date":"2019-03-26T09:24:25","date_gmt":"2019-03-26T09:24:25","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvaraarendus\/chapter\/git\/"},"modified":"2020-12-29T14:35:17","modified_gmt":"2020-12-29T14:35:17","slug":"git","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/chapter\/git\/","title":{"raw":"Versioonihaldus Githubis","rendered":"Versioonihaldus Githubis"},"content":{"raw":"<h1>Versioonihaldus<\/h1>\r\nKui m\u00f5elda erinevatele tekstidele, siis osa neist kirjutatakse kohe l\u00f5puni valmis ja l\u00e4hevad k\u00e4iku. Nii kipub olema n\u00e4iteks l\u00fchikeste tekstis\u00f5numite puhul, kui pahatihti isegi sissej\u00e4\u00e4vatest kirjavigadest ei hoolita. Mitmete teiste tekstide puhul aga on teksti loomisel mitu etappi ja nende k\u00e4igus tekivad tekstist erinevad variandid. Ka samalaadsete tekstide puhul v\u00f5ib esineda erinevaid l\u00e4henemisi. N\u00e4iteks kirjutas Eduard Vilde v\u00e4hemalt osa on romaanidest nii, et vastvalminud peat\u00fckid l\u00e4ksid kohe tr\u00fckki. Friedebert Tuglas aga kirjutas oma teoseid mitmeid kordi uuesti l\u00e4bi. Kui \u00fche teksti kallal tegutsevad mitu inimest, siis on erinevate variantide tekkimine eriti loomulik.\r\n\r\nKui n\u00fc\u00fcd tuleme programmeerimise juurde, mis on ju samuti tekstide loomine, siis saame v\u00e4lja tuua m\u00f5ned iseloomulikud aspektid. Reeglina ei valmi kogu programm l\u00f5plikult n-\u00f6 \u00fche hooga ning sageli on protsessi kaasatud mitu inimest. Juba siit n\u00e4htub, et mitmete variantide tekkimine on v\u00e4hegi pikemate programmide puhul praktiliselt v\u00e4ltimatu. \u00dche v\u00e4ga olulise n\u00fcansina tuleb m\u00e4rkida varasemate versioonide s\u00e4ilitamise vajadust. Paljude tarbe- ja ilukirjanduslike tekstide puhul ei pruugi varasemad variandid erilist t\u00e4hendust omada \u2014 vead parandatud, sisu t\u00e4iendatud \u2014, mis neist vanadest mustandistest ikka hoida. Programmide puhul on aga \u00fcsna tavaline, et arenduse k\u00e4igus on vaja tagasi minna vanemate versioonide juurde. N\u00e4iteks selgub, et nii midagi ikka ei toimi v\u00f5i peaks midagi hoopis teisiti tegema. Eriti kui tegijaid on mitu, siis on \u00fcsna tavaline, et toimub harunemine \u2014 erinevaid versioone hakatakse erinevalt edasi arendama \u2014 ja see v\u00f5ib anda p\u00e4ris keerulise versioonide struktuuri.\r\n\r\nKogu seda protsessi aitaks korraldada s\u00fcsteem, milles oleks koht erinevate versioonide hoidmiseks, seejuures nii, et oleks n\u00e4ha nende areng ja erinevused. Versioone peaks olema mugav lisada ja hallata. Juurdep\u00e4\u00e4s peaks olema tagatud erinevatele asjassepuutuvatele inimestele.\r\n\r\nEi ole vast eriti suur \u00fcllatus, et sellised versioonihalduss\u00fcsteemid (inlg <em>version control system<\/em>) on t\u00e4iesti olemas. Enne, kui konkreetse s\u00fcsteemi juurde l\u00e4heme, tutvume m\u00f5nede m\u00f5istetega, mis edasise l\u00e4bit\u00f6\u00f6tamisel vajalikud on. Projekti k\u00f5iki versioone hoitakse <strong>repositooriumis<\/strong> ehk <strong>varamus<\/strong> (ingl <em>repository<\/em>). Isegi kui k\u00f5ik muudatused automaatselt registreeritakse, on m\u00f5istlik teatud kohtades koos mitu <strong>muudatust registreerida<\/strong> (ingl <em>commit<\/em>). P\u00e4ris sageli tuleb ette olukordi, kus tahetakse n\u00e4iteks midagi katsetada ja selle jaoks on sobiv luua uus <strong>haru<\/strong> (ingl <em>branch<\/em>) nagu n\u00e4idatud joonisel 1. Harud saab kokku viia <strong>mestimisega<\/strong> (ingl <em>merging<\/em>).\r\n\r\n<img class=\"alignnone size-full wp-image-672\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/1.png\" alt=\"\" width=\"1600\" height=\"403\" \/>\r\n\r\n<strong>Joonis 1<\/strong>. Projekti uue versiooni kujunemise haru\r\n\r\nIga versioonihaldustarkvara keskne osa on andmebaas, kus hoitakse projektide k\u00f5iki versioone. Seda andmebaasi nimetatakse <strong>repositooriumiks<\/strong> ehk varamuks (ingl <em>repository<\/em>). Kui varamu asub keskses serveris, nimetatakse versioonihaldustarkvara <strong>tsentraliseerituks<\/strong>. Failidega t\u00f6\u00f6tamiseks tehakse nendest v\u00e4ljav\u00f5te, seej\u00e4rel teeb kasutaja muudatused ning salvestab uue versioonina. Kogu tegevus eeldab \u00fchendust keskse serveriga. Selleks, et mitu inimest ei muudaks korraga \u00fchte ja sama faili, kasutatakse failide <strong>lukustamist<\/strong> v\u00f5i <strong>mestimist<\/strong> (\u00fchendamist). <strong>Hajutatud<\/strong> versioonihaldustarkvara puhul aga on k\u00f5ikidel kasutajatel v\u00f5imalik kloonida projekti k\u00f5ikidest versioonidest koopia. Seej\u00e4rel saab teha muudatusi oma arvutis s\u00f5ltumata v\u00f5rgu\u00fchendusest ning hiljem s\u00fcnkroniseerida teiste kasutajate versioonidega.\r\n\r\nHajutatud versioonihaldus on v\u00e4ga levinud just avatud l\u00e4htekoodiga (koodile on avalik ja vaba juurdep\u00e4\u00e4s) projektide arendamisel. K\u00f5ige populaarsem versioonihaldustarkvara on Git, mis on ka ise avatud l\u00e4htekoodiga. Aastal 2005 l\u00f5i selle Linus Torvalds, algne eesm\u00e4rk oli lihtsustada koost\u00f6\u00f6d Linuxi arendamisel (<a href=\"https:\/\/et.wikipedia.org\/wiki\/Git\">https:\/\/et.wikipedia.org\/wiki\/Git<\/a>). Git talletab lisaks projekti erinevatele versioonidele ka erinevad arendusharud, mida saab omavahel liita. Seet\u00f5ttu sobib tarkvara h\u00e4sti ka suurematele projektidele. Samuti on see populaarne v\u00f5imalus projekti l\u00e4htekoodi avalikustamiseks. Gitil toimiv suurim teenus on GitHub, millel on enam kui 33 miljonit kasutajat (<a href=\"https:\/\/github.com\/search?q=type:user&amp;type=Users\">https:\/\/github.com\/search?q=type:user&amp;type=Users<\/a>). Sarnased teenused on ka n\u00e4iteks GitLab, BitBucket ja SourceForge. Nende teenuste kaudu on v\u00f5imalik koodi \u00fcles panna, nii et oma git-serverit ei ole vaja.\r\n<h1>Versioonihaldus GitHubis<\/h1>\r\n<h2>Giti paigaldamine ja konto loomine GitHubis<\/h2>\r\nVersioonihalduseks on meil vaja k\u00f5igepealt aadressilt <a href=\"https:\/\/git-scm.com\/\">https:\/\/git-scm.com\/<\/a> alla laadida ja paigaldada versioonihaldustarkvara Git ning seej\u00e4rel luua GitHubi konto. Giti paigaldamisel \u00fcldjuhul vaikevalikud sobivad ja saab <em>Next<\/em>-nuppude abil j\u00e4rjest edasi liikuda.\r\nSelleks, et teha GitHubi konto, tuleb minna aadressile <a href=\"https:\/\/github.com\">https:\/\/github.com<\/a>, sisestada kasutajanimi, meiliaadress ja salas\u00f5na, seej\u00e4rel vajutada <em>Sign Up for GitHub<\/em> ja j\u00e4rgida edasisi juhiseid.\r\n<h2>Repositooriumi loomine GitHubis<\/h2>\r\nP\u00e4rast keskkonda sisenemist tuleb valida New repository, et luua uus repositoorium (vt joonis 2).\r\n\r\n<img class=\"alignnone size-full wp-image-673\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/2.png\" alt=\"\" width=\"1600\" height=\"674\" \/>\r\n\r\n<strong>Joonis 2<\/strong>. Uue repositooriumi loomise valimine men\u00fc\u00fcst p\u00e4rast GitHubi konto registreerimist\r\nSeej\u00e4rel avaneb leht, kus saab panna repositooriumile nime, samuti on v\u00f5imalik m\u00e4\u00e4rata, kas see on avalik v\u00f5i mitte. Uue repositooriumi puhul tuleb m\u00e4rkida ka valik <em>Initialize this repository with a README<\/em>.\r\n\r\n<img class=\"alignnone size-full wp-image-674\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/3.png\" alt=\"\" width=\"799\" height=\"847\" \/>\r\n\r\n<strong>Joonis 3<\/strong>. Uue repositooriumi loomine\r\n\r\nRepositooriumi aadress on kujul https:\/\/github.com\/kasutajanimi\/nimi, kus kasutajanimi on iga\u00fche GitHubi kasutajanimi ja nimi repositooriumi nimi (kui GitHubis avada repositoorium, leiab selle aadressirealt). Kui n\u00e4iteks GitHubi kasutajanimi on <em>githubiprojektid<\/em> ja repositooriumi nimi testGit, on aadress <a href=\"https:\/\/github.com\/githubiprojektid\/testGit\">https:\/\/github.com\/githubiprojektid\/testGit<\/a>.\r\n\r\n<strong>Githubi projekti jagamine teiste kasutajatega<\/strong>\r\n\r\nVideon\u00e4ide Githubi projekti jagamisest:\r\n<a href=\"https:\/\/www.youtube.com\/watch?v=sOciDss1EEY\">https:\/\/www.youtube.com\/watch?v=sOciDss1EEY<\/a>\r\n<h1>Failide \u00fcleslaadimine arvutist Githubi<\/h1>\r\nKui kasutajakonto on loodud, siis on aeg proovida failide \u00fcleslaadismist Githubi.\r\nJ\u00e4rgnevalt tutvustatakse selleks nelja erinevat versiooni:\r\n<ol>\r\n \t<li>Veebis (Github.com)<\/li>\r\n \t<li>Windowsis (Giti programmiga)<\/li>\r\n \t<li>Windowsis (CMD k\u00e4surealt)<\/li>\r\n \t<li>Mac \/ Linux (Unixi k\u00e4surealt)<\/li>\r\n \t<li>PyCharm ja Github<\/li>\r\n<\/ol>\r\n<h2>1) Veebis (Github.com)<\/h2>\r\nIngliskeelne juhis: <a href=\"https:\/\/guides.github.com\/activities\/hello-world\/\">https:\/\/guides.github.com\/activities\/hello-world\/<\/a>\r\n<h2>2) Windowsis (GitHub desktopi programmiga)<\/h2>\r\nIngliskeelne video: <a href=\"https:\/\/www.youtube.com\/watch?v=77W2JSL7-r8\">https:\/\/www.youtube.com\/watch?v=77W2JSL7-r8<\/a>\r\n<h2>3) Windowsis (CMD k\u00e4surealt)<\/h2>\r\n<strong>Kaustade vahel liikumine<\/strong>\r\n\r\nJ\u00e4rgmine samm on luua arvutisse kaust, kuhu hiljem repositoorium kloonida. Seej\u00e4rel avame Git Bashi, kus saab k\u00e4surea k\u00e4skudega tegutseda (Windowsi puhul on Gitiga kaasas Git Bash, teiste operatsioonis\u00fcsteemide puhul on teisiti).\r\nKui me tegime n\u00e4iteks arvuti C-kettale kausta nimega git_test, siis saame sinna Git Bash\u2019i kasutades liikuda j\u00e4rgnevalt:\r\n<pre>cd c:\/git_test<\/pre>\r\nSamuti on v\u00f5imalik liikuda kaustade kaupa, nt <strong>c:\/<\/strong> ja vajutada enterit, seej\u00e4rel j\u00e4rgmise k\u00e4suna <strong>cd git_test<\/strong>. Kui k\u00e4sureale kirjutada pwd, n\u00e4eme, millises kaustas hetkel oleme. Kausta sisu vaatamiseks on k\u00e4sk <strong>ls<\/strong> ja kataloogipuus \u00fclespoole liikumiseks <strong>cd ..<\/strong>\r\n\r\n<img class=\"alignnone size-full wp-image-675\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/4.png\" alt=\"\" width=\"920\" height=\"397\" \/>\r\n\r\n<strong>Joonis 4<\/strong>. Kaustade vahel liikumine ja nende sisu vaatamine Git Bash\u2019is\r\n\r\n<strong>Giti seadistamine<\/strong>\r\n\r\nEnne repositooriumi kloonimist ja failide lisamist on vaja Git seadistada. Selleks saab kasutada j\u00e4rgnevaid k\u00e4ske:\r\n\r\n<strong>git config --global user.name \"kasutajanimi\"<\/strong> (siia tuleb koos jutum\u00e4rkidega lisada GitHubi kasutajanimi, meie n\u00e4ite puhul oleks k\u00e4sk <strong>git config --global user.name \"githubiprojektid\"<\/strong>)\r\n\r\n<strong>git config --global user.email meiliaadress<\/strong> (siia tuleb lisada see meiliaadress, mida sai kasutatud GitHubi konto registreerimisel)\r\n\r\n<strong>Repositooriumi kloonimine<\/strong>\r\n\r\nEnne kloonimist on vaja liikuda sellesse alamkausta, mille me tegime arvutis repositooriumi jaoks. Kui n\u00e4iteks tegime C-kettale kausta nimega <em>git_test<\/em>, saame sinna liikuda <strong>cd c:\/git_test<\/strong>\r\n\r\nN\u00fc\u00fcd saame repositooriumi kloonida, lisades ka repositooriumi aadressi. Seda saab teha j\u00e4rgnevalt:\r\n\r\n<strong>git clone aadress<\/strong> (kui GitHubis on repositoorium avatud, leiab selle aadressirealt)\r\n\r\n<img class=\"alignnone size-full wp-image-676\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/5.png\" alt=\"\" width=\"906\" height=\"526\" \/>\r\n\r\n<strong>Joonis 5<\/strong>. Liikumine alamkausta ja repositooriumi kloonimine\r\n\r\nKui kloonimine \u00f5nnestus, lisati arvutisse (meie n\u00e4ite puhul git_test-kausta) alamkaust, mille nimi ja sisu on samad kui GitHubi repositooriumil, mille kloonisime. Sellesse kausta saamegi hakata oma projektiga seotud faile looma.\r\n\r\n<strong>Faili lisamine<\/strong>\r\n\r\nKui oleme loonud oma arvutis asuvasse repositooriumi kausta faile, saame neid add-k\u00e4suga lisada, et Git teaks neid j\u00e4lgida. Failide ja muudatuste lisamiseks liigume Git Bash\u2019is k\u00e4skude abil repositooriumisse (meie n\u00e4ite puhul cd c:\/git_test\/testGit). Kui n\u00e4iteks tegime testGit kausta faili nimega <em>tere.py<\/em>, tuleb toimida j\u00e4rgnevalt:\r\n<pre>git add tere.py<\/pre>\r\nMuudatuste registreerimine\r\n<pre>git commit -m \"Kommentaar\" tere.py<\/pre>\r\nK\u00e4sk commit registreerib faili arvutis ning juurde saab lisada kommentaari. Kommentaar peaks olema l\u00fchike ja v\u00f5tma kokku muudatuste sisu.\r\nKui tahame teada, kas on faile, mis on vaja add-k\u00e4suga lisada v\u00f5i ei ole veel registreeritud, saame teha seda j\u00e4rgneva k\u00e4suga:\r\n<pre>git status<\/pre>\r\n<img class=\"alignnone size-full wp-image-677\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/6.png\" alt=\"\" width=\"898\" height=\"521\" \/>\r\n\r\n<strong>Joonis 6<\/strong>. Faili lisamine ja muudatuste registreerimine\r\n\r\n<strong>Muudatuste \u00fcleslaadimine GitHubi<\/strong>\r\n\r\nKui lisamine ja registreerimine oma arvutis on tehtud ja soovime faili panna GitHubi serverisse, saame teha seda j\u00e4rgnevalt:\r\n<pre>git push -u origin master<\/pre>\r\nKui k\u00f5ik \u00f5nnestus, ilmusid muudatused GitHubi (kui GitHubi repositoorium oli juba lahti, siis tuleb muudatuste n\u00e4gemiseks vajutada brauseri aknas Refresh). Git Bush\u2019is saame k\u00e4suga k\u00e4suga <strong>git status<\/strong> alati kontrollida, kas midagi on veel lisada, registreerida v\u00f5i \u00fcles laadida.\r\n\r\n<img class=\"alignnone size-full wp-image-678\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/7.png\" alt=\"\" width=\"905\" height=\"467\" \/>\r\n\r\n<strong>Joonis 7<\/strong>. Muudatuste \u00fcleslaadimine GitHubi\r\n\r\n<strong>Muudatuste allalaadimine<\/strong>\r\n\r\nSelleks, et muudatusi alla laadida, on j\u00e4rgnev k\u00e4sk:\r\n<pre>git pull<\/pre>\r\n<h2>4) Macis ja Linuxis (Unixi k\u00e4surealt)<\/h2>\r\nIngliskeelne l\u00fchijuhend: <a href=\"https:\/\/gist.github.com\/seankross\/8830032\">https:\/\/gist.github.com\/seankross\/8830032<\/a>\r\n\r\n<strong>Uue repositooriumi loomine k\u00e4surealt<\/strong>\r\n<pre>touch README.md\r\n\r\ngit init\r\n\r\ngit add README.md\r\n\r\ngit commit -m \"esimene kommentaar\"\r\n\r\ngit remote add origin https:\/\/github.com\/seankross\/womp.git\r\n\r\ngit push -u origin master<\/pre>\r\n<strong>Olemasoleva repositooriumi \u00fcleslaadimine k\u00e4surealt<\/strong>\r\n<pre>git remote add origin https:\/\/github.com\/seankross\/womp.gi\r\n\r\ngit push -u origin master<\/pre>\r\n<h2>5) PyCharm ja Github<\/h2>\r\nIngliskeelne video: <a href=\"https:\/\/www.youtube.com\/watch?v=UBLONzkmReE\">https:\/\/www.youtube.com\/watch?v=UBLONzkmReE<\/a>","rendered":"<h1>Versioonihaldus<\/h1>\n<p>Kui m\u00f5elda erinevatele tekstidele, siis osa neist kirjutatakse kohe l\u00f5puni valmis ja l\u00e4hevad k\u00e4iku. Nii kipub olema n\u00e4iteks l\u00fchikeste tekstis\u00f5numite puhul, kui pahatihti isegi sissej\u00e4\u00e4vatest kirjavigadest ei hoolita. Mitmete teiste tekstide puhul aga on teksti loomisel mitu etappi ja nende k\u00e4igus tekivad tekstist erinevad variandid. Ka samalaadsete tekstide puhul v\u00f5ib esineda erinevaid l\u00e4henemisi. N\u00e4iteks kirjutas Eduard Vilde v\u00e4hemalt osa on romaanidest nii, et vastvalminud peat\u00fckid l\u00e4ksid kohe tr\u00fckki. Friedebert Tuglas aga kirjutas oma teoseid mitmeid kordi uuesti l\u00e4bi. Kui \u00fche teksti kallal tegutsevad mitu inimest, siis on erinevate variantide tekkimine eriti loomulik.<\/p>\n<p>Kui n\u00fc\u00fcd tuleme programmeerimise juurde, mis on ju samuti tekstide loomine, siis saame v\u00e4lja tuua m\u00f5ned iseloomulikud aspektid. Reeglina ei valmi kogu programm l\u00f5plikult n-\u00f6 \u00fche hooga ning sageli on protsessi kaasatud mitu inimest. Juba siit n\u00e4htub, et mitmete variantide tekkimine on v\u00e4hegi pikemate programmide puhul praktiliselt v\u00e4ltimatu. \u00dche v\u00e4ga olulise n\u00fcansina tuleb m\u00e4rkida varasemate versioonide s\u00e4ilitamise vajadust. Paljude tarbe- ja ilukirjanduslike tekstide puhul ei pruugi varasemad variandid erilist t\u00e4hendust omada \u2014 vead parandatud, sisu t\u00e4iendatud \u2014, mis neist vanadest mustandistest ikka hoida. Programmide puhul on aga \u00fcsna tavaline, et arenduse k\u00e4igus on vaja tagasi minna vanemate versioonide juurde. N\u00e4iteks selgub, et nii midagi ikka ei toimi v\u00f5i peaks midagi hoopis teisiti tegema. Eriti kui tegijaid on mitu, siis on \u00fcsna tavaline, et toimub harunemine \u2014 erinevaid versioone hakatakse erinevalt edasi arendama \u2014 ja see v\u00f5ib anda p\u00e4ris keerulise versioonide struktuuri.<\/p>\n<p>Kogu seda protsessi aitaks korraldada s\u00fcsteem, milles oleks koht erinevate versioonide hoidmiseks, seejuures nii, et oleks n\u00e4ha nende areng ja erinevused. Versioone peaks olema mugav lisada ja hallata. Juurdep\u00e4\u00e4s peaks olema tagatud erinevatele asjassepuutuvatele inimestele.<\/p>\n<p>Ei ole vast eriti suur \u00fcllatus, et sellised versioonihalduss\u00fcsteemid (inlg <em>version control system<\/em>) on t\u00e4iesti olemas. Enne, kui konkreetse s\u00fcsteemi juurde l\u00e4heme, tutvume m\u00f5nede m\u00f5istetega, mis edasise l\u00e4bit\u00f6\u00f6tamisel vajalikud on. Projekti k\u00f5iki versioone hoitakse <strong>repositooriumis<\/strong> ehk <strong>varamus<\/strong> (ingl <em>repository<\/em>). Isegi kui k\u00f5ik muudatused automaatselt registreeritakse, on m\u00f5istlik teatud kohtades koos mitu <strong>muudatust registreerida<\/strong> (ingl <em>commit<\/em>). P\u00e4ris sageli tuleb ette olukordi, kus tahetakse n\u00e4iteks midagi katsetada ja selle jaoks on sobiv luua uus <strong>haru<\/strong> (ingl <em>branch<\/em>) nagu n\u00e4idatud joonisel 1. Harud saab kokku viia <strong>mestimisega<\/strong> (ingl <em>merging<\/em>).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-672\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/1.png\" alt=\"\" width=\"1600\" height=\"403\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/1.png 1600w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/1-300x76.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/1-1024x258.png 1024w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/1-768x193.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/1-1536x387.png 1536w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/1-65x16.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/1-225x57.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/1-350x88.png 350w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><strong>Joonis 1<\/strong>. Projekti uue versiooni kujunemise haru<\/p>\n<p>Iga versioonihaldustarkvara keskne osa on andmebaas, kus hoitakse projektide k\u00f5iki versioone. Seda andmebaasi nimetatakse <strong>repositooriumiks<\/strong> ehk varamuks (ingl <em>repository<\/em>). Kui varamu asub keskses serveris, nimetatakse versioonihaldustarkvara <strong>tsentraliseerituks<\/strong>. Failidega t\u00f6\u00f6tamiseks tehakse nendest v\u00e4ljav\u00f5te, seej\u00e4rel teeb kasutaja muudatused ning salvestab uue versioonina. Kogu tegevus eeldab \u00fchendust keskse serveriga. Selleks, et mitu inimest ei muudaks korraga \u00fchte ja sama faili, kasutatakse failide <strong>lukustamist<\/strong> v\u00f5i <strong>mestimist<\/strong> (\u00fchendamist). <strong>Hajutatud<\/strong> versioonihaldustarkvara puhul aga on k\u00f5ikidel kasutajatel v\u00f5imalik kloonida projekti k\u00f5ikidest versioonidest koopia. Seej\u00e4rel saab teha muudatusi oma arvutis s\u00f5ltumata v\u00f5rgu\u00fchendusest ning hiljem s\u00fcnkroniseerida teiste kasutajate versioonidega.<\/p>\n<p>Hajutatud versioonihaldus on v\u00e4ga levinud just avatud l\u00e4htekoodiga (koodile on avalik ja vaba juurdep\u00e4\u00e4s) projektide arendamisel. K\u00f5ige populaarsem versioonihaldustarkvara on Git, mis on ka ise avatud l\u00e4htekoodiga. Aastal 2005 l\u00f5i selle Linus Torvalds, algne eesm\u00e4rk oli lihtsustada koost\u00f6\u00f6d Linuxi arendamisel (<a href=\"https:\/\/et.wikipedia.org\/wiki\/Git\">https:\/\/et.wikipedia.org\/wiki\/Git<\/a>). Git talletab lisaks projekti erinevatele versioonidele ka erinevad arendusharud, mida saab omavahel liita. Seet\u00f5ttu sobib tarkvara h\u00e4sti ka suurematele projektidele. Samuti on see populaarne v\u00f5imalus projekti l\u00e4htekoodi avalikustamiseks. Gitil toimiv suurim teenus on GitHub, millel on enam kui 33 miljonit kasutajat (<a href=\"https:\/\/github.com\/search?q=type:user&amp;type=Users\">https:\/\/github.com\/search?q=type:user&amp;type=Users<\/a>). Sarnased teenused on ka n\u00e4iteks GitLab, BitBucket ja SourceForge. Nende teenuste kaudu on v\u00f5imalik koodi \u00fcles panna, nii et oma git-serverit ei ole vaja.<\/p>\n<h1>Versioonihaldus GitHubis<\/h1>\n<h2>Giti paigaldamine ja konto loomine GitHubis<\/h2>\n<p>Versioonihalduseks on meil vaja k\u00f5igepealt aadressilt <a href=\"https:\/\/git-scm.com\/\">https:\/\/git-scm.com\/<\/a> alla laadida ja paigaldada versioonihaldustarkvara Git ning seej\u00e4rel luua GitHubi konto. Giti paigaldamisel \u00fcldjuhul vaikevalikud sobivad ja saab <em>Next<\/em>-nuppude abil j\u00e4rjest edasi liikuda.<br \/>\nSelleks, et teha GitHubi konto, tuleb minna aadressile <a href=\"https:\/\/github.com\">https:\/\/github.com<\/a>, sisestada kasutajanimi, meiliaadress ja salas\u00f5na, seej\u00e4rel vajutada <em>Sign Up for GitHub<\/em> ja j\u00e4rgida edasisi juhiseid.<\/p>\n<h2>Repositooriumi loomine GitHubis<\/h2>\n<p>P\u00e4rast keskkonda sisenemist tuleb valida New repository, et luua uus repositoorium (vt joonis 2).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-673\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/2.png\" alt=\"\" width=\"1600\" height=\"674\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/2.png 1600w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/2-300x126.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/2-1024x431.png 1024w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/2-768x324.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/2-1536x647.png 1536w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/2-65x27.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/2-225x95.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/2-350x147.png 350w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><strong>Joonis 2<\/strong>. Uue repositooriumi loomise valimine men\u00fc\u00fcst p\u00e4rast GitHubi konto registreerimist<br \/>\nSeej\u00e4rel avaneb leht, kus saab panna repositooriumile nime, samuti on v\u00f5imalik m\u00e4\u00e4rata, kas see on avalik v\u00f5i mitte. Uue repositooriumi puhul tuleb m\u00e4rkida ka valik <em>Initialize this repository with a README<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-674\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/3.png\" alt=\"\" width=\"799\" height=\"847\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/3.png 799w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/3-283x300.png 283w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/3-768x814.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/3-65x69.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/3-225x239.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/3-350x371.png 350w\" sizes=\"auto, (max-width: 799px) 100vw, 799px\" \/><\/p>\n<p><strong>Joonis 3<\/strong>. Uue repositooriumi loomine<\/p>\n<p>Repositooriumi aadress on kujul https:\/\/github.com\/kasutajanimi\/nimi, kus kasutajanimi on iga\u00fche GitHubi kasutajanimi ja nimi repositooriumi nimi (kui GitHubis avada repositoorium, leiab selle aadressirealt). Kui n\u00e4iteks GitHubi kasutajanimi on <em>githubiprojektid<\/em> ja repositooriumi nimi testGit, on aadress <a href=\"https:\/\/github.com\/githubiprojektid\/testGit\">https:\/\/github.com\/githubiprojektid\/testGit<\/a>.<\/p>\n<p><strong>Githubi projekti jagamine teiste kasutajatega<\/strong><\/p>\n<p>Videon\u00e4ide Githubi projekti jagamisest:<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=sOciDss1EEY\">https:\/\/www.youtube.com\/watch?v=sOciDss1EEY<\/a><\/p>\n<h1>Failide \u00fcleslaadimine arvutist Githubi<\/h1>\n<p>Kui kasutajakonto on loodud, siis on aeg proovida failide \u00fcleslaadismist Githubi.<br \/>\nJ\u00e4rgnevalt tutvustatakse selleks nelja erinevat versiooni:<\/p>\n<ol>\n<li>Veebis (Github.com)<\/li>\n<li>Windowsis (Giti programmiga)<\/li>\n<li>Windowsis (CMD k\u00e4surealt)<\/li>\n<li>Mac \/ Linux (Unixi k\u00e4surealt)<\/li>\n<li>PyCharm ja Github<\/li>\n<\/ol>\n<h2>1) Veebis (Github.com)<\/h2>\n<p>Ingliskeelne juhis: <a href=\"https:\/\/guides.github.com\/activities\/hello-world\/\">https:\/\/guides.github.com\/activities\/hello-world\/<\/a><\/p>\n<h2>2) Windowsis (GitHub desktopi programmiga)<\/h2>\n<p>Ingliskeelne video: <a href=\"https:\/\/www.youtube.com\/watch?v=77W2JSL7-r8\">https:\/\/www.youtube.com\/watch?v=77W2JSL7-r8<\/a><\/p>\n<h2>3) Windowsis (CMD k\u00e4surealt)<\/h2>\n<p><strong>Kaustade vahel liikumine<\/strong><\/p>\n<p>J\u00e4rgmine samm on luua arvutisse kaust, kuhu hiljem repositoorium kloonida. Seej\u00e4rel avame Git Bashi, kus saab k\u00e4surea k\u00e4skudega tegutseda (Windowsi puhul on Gitiga kaasas Git Bash, teiste operatsioonis\u00fcsteemide puhul on teisiti).<br \/>\nKui me tegime n\u00e4iteks arvuti C-kettale kausta nimega git_test, siis saame sinna Git Bash\u2019i kasutades liikuda j\u00e4rgnevalt:<\/p>\n<pre>cd c:\/git_test<\/pre>\n<p>Samuti on v\u00f5imalik liikuda kaustade kaupa, nt <strong>c:\/<\/strong> ja vajutada enterit, seej\u00e4rel j\u00e4rgmise k\u00e4suna <strong>cd git_test<\/strong>. Kui k\u00e4sureale kirjutada pwd, n\u00e4eme, millises kaustas hetkel oleme. Kausta sisu vaatamiseks on k\u00e4sk <strong>ls<\/strong> ja kataloogipuus \u00fclespoole liikumiseks <strong>cd ..<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-675\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/4.png\" alt=\"\" width=\"920\" height=\"397\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/4.png 920w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/4-300x129.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/4-768x331.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/4-65x28.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/4-225x97.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/4-350x151.png 350w\" sizes=\"auto, (max-width: 920px) 100vw, 920px\" \/><\/p>\n<p><strong>Joonis 4<\/strong>. Kaustade vahel liikumine ja nende sisu vaatamine Git Bash\u2019is<\/p>\n<p><strong>Giti seadistamine<\/strong><\/p>\n<p>Enne repositooriumi kloonimist ja failide lisamist on vaja Git seadistada. Selleks saab kasutada j\u00e4rgnevaid k\u00e4ske:<\/p>\n<p><strong>git config &#8211;global user.name &#8220;kasutajanimi&#8221;<\/strong> (siia tuleb koos jutum\u00e4rkidega lisada GitHubi kasutajanimi, meie n\u00e4ite puhul oleks k\u00e4sk <strong>git config &#8211;global user.name &#8220;githubiprojektid&#8221;<\/strong>)<\/p>\n<p><strong>git config &#8211;global user.email meiliaadress<\/strong> (siia tuleb lisada see meiliaadress, mida sai kasutatud GitHubi konto registreerimisel)<\/p>\n<p><strong>Repositooriumi kloonimine<\/strong><\/p>\n<p>Enne kloonimist on vaja liikuda sellesse alamkausta, mille me tegime arvutis repositooriumi jaoks. Kui n\u00e4iteks tegime C-kettale kausta nimega <em>git_test<\/em>, saame sinna liikuda <strong>cd c:\/git_test<\/strong><\/p>\n<p>N\u00fc\u00fcd saame repositooriumi kloonida, lisades ka repositooriumi aadressi. Seda saab teha j\u00e4rgnevalt:<\/p>\n<p><strong>git clone aadress<\/strong> (kui GitHubis on repositoorium avatud, leiab selle aadressirealt)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-676\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/5.png\" alt=\"\" width=\"906\" height=\"526\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/5.png 906w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/5-300x174.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/5-768x446.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/5-65x38.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/5-225x131.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/5-350x203.png 350w\" sizes=\"auto, (max-width: 906px) 100vw, 906px\" \/><\/p>\n<p><strong>Joonis 5<\/strong>. Liikumine alamkausta ja repositooriumi kloonimine<\/p>\n<p>Kui kloonimine \u00f5nnestus, lisati arvutisse (meie n\u00e4ite puhul git_test-kausta) alamkaust, mille nimi ja sisu on samad kui GitHubi repositooriumil, mille kloonisime. Sellesse kausta saamegi hakata oma projektiga seotud faile looma.<\/p>\n<p><strong>Faili lisamine<\/strong><\/p>\n<p>Kui oleme loonud oma arvutis asuvasse repositooriumi kausta faile, saame neid add-k\u00e4suga lisada, et Git teaks neid j\u00e4lgida. Failide ja muudatuste lisamiseks liigume Git Bash\u2019is k\u00e4skude abil repositooriumisse (meie n\u00e4ite puhul cd c:\/git_test\/testGit). Kui n\u00e4iteks tegime testGit kausta faili nimega <em>tere.py<\/em>, tuleb toimida j\u00e4rgnevalt:<\/p>\n<pre>git add tere.py<\/pre>\n<p>Muudatuste registreerimine<\/p>\n<pre>git commit -m \"Kommentaar\" tere.py<\/pre>\n<p>K\u00e4sk commit registreerib faili arvutis ning juurde saab lisada kommentaari. Kommentaar peaks olema l\u00fchike ja v\u00f5tma kokku muudatuste sisu.<br \/>\nKui tahame teada, kas on faile, mis on vaja add-k\u00e4suga lisada v\u00f5i ei ole veel registreeritud, saame teha seda j\u00e4rgneva k\u00e4suga:<\/p>\n<pre>git status<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-677\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/6.png\" alt=\"\" width=\"898\" height=\"521\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/6.png 898w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/6-300x174.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/6-768x446.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/6-65x38.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/6-225x131.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/6-350x203.png 350w\" sizes=\"auto, (max-width: 898px) 100vw, 898px\" \/><\/p>\n<p><strong>Joonis 6<\/strong>. Faili lisamine ja muudatuste registreerimine<\/p>\n<p><strong>Muudatuste \u00fcleslaadimine GitHubi<\/strong><\/p>\n<p>Kui lisamine ja registreerimine oma arvutis on tehtud ja soovime faili panna GitHubi serverisse, saame teha seda j\u00e4rgnevalt:<\/p>\n<pre>git push -u origin master<\/pre>\n<p>Kui k\u00f5ik \u00f5nnestus, ilmusid muudatused GitHubi (kui GitHubi repositoorium oli juba lahti, siis tuleb muudatuste n\u00e4gemiseks vajutada brauseri aknas Refresh). Git Bush\u2019is saame k\u00e4suga k\u00e4suga <strong>git status<\/strong> alati kontrollida, kas midagi on veel lisada, registreerida v\u00f5i \u00fcles laadida.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-678\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/7.png\" alt=\"\" width=\"905\" height=\"467\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/7.png 905w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/7-300x155.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/7-768x396.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/7-65x34.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/7-225x116.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2019\/03\/7-350x181.png 350w\" sizes=\"auto, (max-width: 905px) 100vw, 905px\" \/><\/p>\n<p><strong>Joonis 7<\/strong>. Muudatuste \u00fcleslaadimine GitHubi<\/p>\n<p><strong>Muudatuste allalaadimine<\/strong><\/p>\n<p>Selleks, et muudatusi alla laadida, on j\u00e4rgnev k\u00e4sk:<\/p>\n<pre>git pull<\/pre>\n<h2>4) Macis ja Linuxis (Unixi k\u00e4surealt)<\/h2>\n<p>Ingliskeelne l\u00fchijuhend: <a href=\"https:\/\/gist.github.com\/seankross\/8830032\">https:\/\/gist.github.com\/seankross\/8830032<\/a><\/p>\n<p><strong>Uue repositooriumi loomine k\u00e4surealt<\/strong><\/p>\n<pre>touch README.md\r\n\r\ngit init\r\n\r\ngit add README.md\r\n\r\ngit commit -m \"esimene kommentaar\"\r\n\r\ngit remote add origin https:\/\/github.com\/seankross\/womp.git\r\n\r\ngit push -u origin master<\/pre>\n<p><strong>Olemasoleva repositooriumi \u00fcleslaadimine k\u00e4surealt<\/strong><\/p>\n<pre>git remote add origin https:\/\/github.com\/seankross\/womp.gi\r\n\r\ngit push -u origin master<\/pre>\n<h2>5) PyCharm ja Github<\/h2>\n<p>Ingliskeelne video: <a href=\"https:\/\/www.youtube.com\/watch?v=UBLONzkmReE\">https:\/\/www.youtube.com\/watch?v=UBLONzkmReE<\/a><\/p>\n","protected":false},"author":3,"menu_order":3,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":"all-rights-reserved"},"chapter-type":[],"contributor":[],"license":[58],"class_list":["post-67","chapter","type-chapter","status-publish","hentry","license-all-rights-reserved"],"part":63,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/67","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/users\/3"}],"version-history":[{"count":6,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/67\/revisions"}],"predecessor-version":[{"id":680,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/67\/revisions\/680"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/parts\/63"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/67\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/media?parent=67"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapter-type?post=67"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/contributor?post=67"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/license?post=67"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}