Versiju vadība
Ievads
Iedomāsimies situāciju, kad jāuzraksta referāts ar 10 lapām. Iesākumā top ievads, pēc tam iztirzājuma daļa, beigās jāpievieno secinājumi. Noslēgumā darbam jāpievieno satura rādītājs. Visticamāk procesā tiks izveidoti neskaitāmi faili un katrā no tiem būs kādas izmaiņas. Izskatīties tas varētu šādi:
Autoram kļūst grūti orientēties un viņš vairs nesaprot, kādas izmaiņas glabājas katrā no failiem. Tāpēc lieto rīkus, ko sauc par versiju kontroles (vadības) rīkiem.
Vēsturiski versiju vadības sistēmas radīja vienkāršiem .txt failiem, bet ātri vien programmētāji tos sāka izmantot savām vajadzībām.
Zināmākie no versiju vadības rīkiem ir Git, Bitbucket, kā arī citi. Taču tie darbojas ļoti līdzīgi, atšķirās vien pieraksts komandām.
Kā tas darbojas?
Lai savā projektā varētu saglabāt visas veiktās izmaiņas un vēlāk pie tām atgriezties, veido repozitoriju, kas ir kā konteiners, kas sevī ietver projektu un visas tā datnes. Repozitorijs sevī glabā informāciju par visām veiktajām izmaiņām koda failos. Ja programmētājam rodas vajadzība, viņš var brīvi atgriezties uz jebkuru iepriekšējo versiju un turpināt darbu.
Iestatīšana
Turpmākajos piemēros izmantosim versiju vadības sistēmu Git. Lai sāktu to izmantot, nepieciešams lejupielādēt un uzstādīt savā datorā.
Instalācijas failu vari lejupielādēt šeit!
Instalācijas vednī nekādas izmaiņas nav jāveic. Sekojam instrukcijām, līdz instalācija ir veiksmīgi pabeigta.
Pirms sākam izmantot Git saviem projektiem, vēlams iestatīt lietotāju. Tam izmantosim speciālas komandas, ko ierakstīsim komandrindā. Komandrindu atveram ar Win + R
, Run logā ierakstot cmd.
Iestatīsim lietotājvārdu un e-pastu. Tas tiks norādīts, fiksējot versijas savā projektā.
Izpildam komandu, kurā norādam savu izvēlēto lietotājvārdu
git config --global user.name "Brašais koderis"
--global parametrs norāda, ka lietotājvārds tiks lietots visiem repozitorijiem, ko veidosim
Tādā pašā veidā iestatīsim arī e-pastu
git config --global user.email "[email protected]"
Ja nepieciešams apskatīties esošo konfigurāciju, to var izdarīt šādi:
git config --list
Atgādne ar komandām, kas var noderēt
Spied, lai palielinātu!
Avots: https://twitter.com/profulsadangi/status/1298236182245982210
Iepazīstam komandrindu
Lai izveidotu repozitoriju (dažreiz to dēvē par repo), to inicializē jau esošā mapē, tāpēc uz darbvirsmas izveidosim jaunu mapi ar nosaukumu mans_projekts
.
Kad mape ir izveidota, komandrindā ir jānokļūst uz šo mapi.
Apskatīsim dažas komandas, kas ļauj veikt pamata darbības komandrindā.
cd <mapes nosaukums>
ļauj atvērt mapi
cd ..
atgriežas līmeni atpakaļ iepriekšējā mapē (back)
mkdir <mapes nosaukums>
veido jaunu mapi ar doto nosaukumu
dir
ļauj apskatīt mapes saturu
Ar šo pietiks, lai mēs varētu sākt izmantot Git.
Atverot komandrindu, parasti mēs nonākam lietotāja mapē C:\Users\<tavs lietotājvārds>
Ja vēlamies nokļūt darbvirsmā, izpildām komandu cd desktop
Un atvērsim jauno projekta mapi ar komandu cd mans_projekts
. Ja mapi esi nosaucis citādi, tad norādi izvēlēto nosaukumu.
Veidojam repozitoriju
Ja komandrindā redzam ceļu C:\Users\<tavs lietotājvārds>\Desktop\mans_projekts
, tad varam izveidot jeb inicializēt repozitoriju šajā mapē.
Tam lietojam doto komandu:
git init
Saņemsim paziņojumu, ka repozitorijs ir veiksmīgi izveidots.
Nākamais solis ir pievienot failus repozitorijā, ko apskatīsim nākamajā sadaļā.
Failu pievienošana
Pirms veidojam versijas, jāizpilda svarīgs solis - faili jāieliek uzskaitē
Ar komandu
git status
varam ērti apskatīt, kuri faili jau ir repozitorija uzskaitē un kuri vēl nav
Sarkanā krāsā iezīmētie ir sveši faili, pievienosim tos repizotorijam ar
git add .
Ja nepieciešams, var izpildīt komandu arī atsevišķiem failiem, bet to izmanto retāk
git add <faila_nosaukums>
Tagad atkārtoti izpildot komandu git status
, redzēsim, ka faili attēloti zaļā krāsā un Git ir sācis sekot izmaiņām failos
Redzam arī paziņojumu No commits yet, kas nozīmē, ka neesam fiksējuši vēl nevienu versiju savā projektā, bet par to nākamajā sadaļā...
Versijas jeb komiti
Veidojot tīmekļa vietni vai datorprogrammu, veido versijas, piemēram, v1.0 vai v3.0. Bet dažreiz nākas izlabot kļūdas vai pievienot kādu nelielu labojumu un tādā gadījumā veido mazās jeb minorversijas, piemēram, v2.1 vai v1.4. Visas šīs versijas Git sistēmā ir tā sauktie komiti jeb commits
Komits glabā informāciju par katru projekta failu un izmaiņām failā konkrētājā brīdī un programmētājam ir iespēja atgriezties pagātnē uz kādu iepriekšējo komitu, ja jaunās izmaiņas nedarbojas, kā iecerēts
Mēs iemācījāmies ar komandu git add
sagatavot failus jaunai versijai un nu tie ir atpazīstami Git sistēmā. Izveidosim pirmo komitu ar komandu
git commit -m "Mans pirmais komits"
Parametrs -m apzīmē, ka pievienosim ziņojumu (message) jeb aprakstu par izmaiņām komitā, bet pašu aprakstu norādām pēdiņās
Ziņojumā redzēsim, cik faili ir reģistrēti komitā un kādas izmaiņas tajos veiktos
Versiju žurnāls
Lai redzētu versiju vēsturi repozitorijam, lietojam komandu
git log --oneline
Katrs komits attēlots jaunā rindā ar savu unikālu adresi, piemēram, 5c039ef
Atgriežamies uz vecāku versiju
Veiksim izmaiņas kādā no failiem un izveidosim vēl vienu versiju
Failā index.html pievienojam paragrāfu un izpildam git status
Redzam, ka Git ziņo par jaunām izmaiņām failā, tāpēc tas ir atkārtoti jāpievieno ar git add .
Atkārtoti izpildot git status
, redzam, ka izmaiņas failā ir atpazītas un var veidot jaunu versiju, pievienojot ziņojumu
Versiju žurnālā būs nu jau 2 versijas, kur pēdējā satur papildinātu index.html failu
Ja jaunās izmaiņas tomēr nevēlamies, varam atgriezties uz sākotnējo versiju un index.html fails atkal kļūs tukšs
Tam lietojam komandu
git reset --hard <komita_id>
Repozitorijā anulējas visas izmaiņas, kas ieviestas kopš norādītā komita
Zari
Iedomāsimies situāciju, kad strādājam pie kāda projekta, piemēram, tīmekļa vietnes. Kādā brīdī nepieciešams pievienot autorizācijas iespēju, bet mēs nevēlamies sabojāt esošo funkcionalitāti. Tādā gadījumā ļoti noder Git iespēja, ko dēvē par zariem jeb branches.
avots: https://www.learncsdesign.com/a-review-of-git-branching-strategies/
Noklusēti repozitorijs strādā pamata zarā jeb main branch.
No tā iespējams atvasināt citus, piemēram, bugfix jeb mazos labojumus vai feature, kur pievieno jaunu funkcionalitāti.
Tādā veidā mēs vairs nevaram salauzt strādājošo kodu.
Pamata komandas, strādājot ar zariem, ir git branch
, git switch
un git merge
.
Lai izveidotu jaunu zaru, izmantojam
git branch "Pievienojam_autorizaaciju"
, kur pēdiņās norādām tā nosaukumu
Lai pārslēgtos uz jaunizveidoto zaru, izmantojam
git switch "Pievienojam_autorizaaciju"
Ar komandu git branch
varam apskatīties, kurš no visiem zariem pašlaik ir aktīvs
Kad esam veikuši vajadzīgās izmaiņas vai arī ja funkcionalitāte ir gatava lietošanai, zarā izveido jaunu versiju ar git add .
un git commit
.
Ja versija izveidota, atgriežamies main zarā un savienojam ar jauno zaru
git merge "Pievienojam autorizaaciju"
Visas izmaiņas tagad būs spēkā main zarā.
Zaram var veidot arī apakšzarus, piemēram, ja funkcijas izstrādes laikā pamana jaunu kļūdu, izveido feature-new-bug zaru, kurā to izlabo.