Skip to content

Versiju kontrole dumiķīšiem: pirmā daļa

Novembris 14, 2011

Disklaimers

Programmētāji var mierīgi nelasīt un nesmieties. Ja lasāt un pamanāt kādu būtisku kļūdu, laipni lūgti norādīt komentāros, izlabošu ar atsauci uz komentāru.

Neliela parunāšana par tēmu, drīkst izlaist

Tātad, kādu dienu, rakājoties dienišķajos bekupos un mēģinot atcerēties, kad īsti es nospriedu, ka šis raksts man kursa darbam nebūs vajadzīgs, un izdzēsu to no provizoriskā literatūras saraksta, nospriedu, ka man vajag versiju kontroli. Gandrīz katrs mans darbs sastāv no vismaz diviem teksta failiem, un nav svarīgi, ka tie ir .tex nevis .php.

Atdūros pret milzīgiem džungļiem, pirmkārt, izvēle starp dažādām sasitēmām, pēc tam saprast, kā to lietot. Izvēlējos git, atzīšos godīgi, daļēji uz dullo. Radās iespaids, ka manām vajadzībām tas būs visērtāk lietojams, proti, es strādāšu tikai uz sava datora un tikai es viena, un man nevajag, lai visi faili glabātos nez kur uz servera.

Otrām kārtām vajadzēja saprast, ko ar uzinstalēto programmu iesākt. Un ko darīt brīžos, kad nolemju, ka šīs trīs rindkopas man nevajadzēs un mierīgi varu tās dzēst ārā un kā pēc nedēļas dabūt tās atpakaļ nepatērējot milzīgi daudz laika (jā, es patērēju milzīgi daudz laika domājot, kā nepatērēt milzīgi daudz laika, cerams atmaksāsies).

Aprakstu par Git, protams, ir milzīgi daudz. Atrast tādu, kas der man, ir pagrūti (man iepatikās GitMagic, starp citu, bet tā ir pagara lasāmviela). Tātad, pārejam pie nākamās sadaļas:

Šī raksta mērķauditorija

ir cilvēki, kam ir visai aptuvena nojausma par to, kas ir versiju kontrole, bet domā, ka viņiem to vajag. Kam ir pilnīgi vienalga, kas Git izdomāja un kā tas strādā. Kas grib pēc iespējas ātrāk turpināt darbu pie sava iesāktā projekta, bet nu jau drošāk, nevis investēt resursus smalkumu apgūšanā. Un kam komandrinda neizsauc paniku. Hmm, iespējams, šis raksts būs domāts tikai man, lai labāk iemācītos un vajadzības gadījumā varētu apskatīties kā tur īsti bija jādara. Nevaru apgalvot, ka esmu pāris dienu laikā izmēģinājusi visas iespējamās grafiskās vides, taču pēc dažām populārākajām nācās secināt — lai tās sekmīgi lietoti, ir jāzina, kas tad īsti notiek aiz tām podziņām. Tātad, Git lietošana jāsāk ar komandrindu.

Kā iesākt

Vispirms instalējam Git. Debian bāzētu Linux distribūciju lietotāji to var izdarīt ar
sudo apt-get install git
Windows lietotājiem jāiet te.

Tātad, mums ir Git. Tagad jāver vaļā komandrinda un jāiet uz iesākto projektu:
cd /cels/uz/projektu
cd C:/cels uz projektu

(Fū, šī laikam būs vienīgā reize, kad man jāraksta komandrinda priekš Win. Vienīgās būtiskās lietas, kas jāzina ir komandas cd un dir, attiecīgi priekš Linux cd un ls. Pirmā maina aktīvo mapīti jeb direktoriju, otrā parāda kas ir mapītē.

Tagad ir jāpasaka draugam Gitam, ka šeit vajadzēs versiju kontroli. To dara ar komandu
git init

Ar to vēl nepietiks, ja tas ir iesākts projekts, ir jāpasaka, ka te jau ir faili un jāizveido pirmais pienesums (commit):
git add .
git commit -m 'Pirmais'

Šīs divas komandas būs jālieto samērā bieži. add pievieno jaunos failus (Gits tikai seko izmaiņām esošajos!), punkts nozīmē, ka tiek pievienots viss, kas vēl nav pievienots. Apostrofos ir jāraksta jēgpilns īss kopsavilkums veiktajām izmaiņām. Cik bieži ar commit iezīmēt atskaites punktu? Es to daru tad, kad man liekas, ka kaut kas ir izdarīts, obligāti katra darba cēliena beigās. Teiksim, uzrakstīju piecas rindkopas trešajā nodaļā. Vai izdzēsu divas otrajā. Bet ne gluži pēc katra teikuma.

Okei, man ir atskaites punkti. Nu un?

Varu apskatīties informāciju par pēdējām izmaiņāsm

Un man tas ir noderīgi, jo palīdz saglabāt pārskatu pār to, kas tika darīts. To dara ar
git log

Varu atgriezties atpakaļ

Izpildot git log parādījās ne tikai tāda saprotama informācija kā paša ierakstītais izmaiņu kopsavilkums un laiks, bet arī rindiņa, kas izskatās apmēram šādi:
commit 85be5a83f6c370cc187c382a9043bb530791e1f2
Viss tas garais ir pienesuma identifikators. Par laimi, parasti pietiek ar dažu pirmo simbolu pārrakstīšanu. Tātad, lai atgrieztos pie kāda no iepriekšējiem sistēmas stāvokļiem rakstām:
git checkout 85be
Ir svarīgi atcerēties, ka pirms checkout ir obligāti jākommito, ar Ctrl+S nepietiek. Lai atgrieztos pie aktuālās versijas rakstām
git checkout master
Salīdzināt divus kommitus var ar komandu
git diff

Piemēram:

Es izveidoju failu test.txt, ierakstīju tajā “Man gribas ēst”, kommitoju. Tad nomainīju failu saturu uz “Pusdienās bija ļoti garšīgas kotletes”, kommitoju. Starpība starp šiem abiem izskatās kā

git diff 79bbc b9e8

diff --git a/test.TXT b/test.TXT
index 46a568c..593bb8f 100644
--- a/test.TXT
+++ b/test.TXT
@@ -1 +1 @@
-Pusdiens bija oti gargas kotletes
\ No newline at end of file
+Man oti gribas st
\ No newline at end of file

Kā dabūt atpakaļ vecāku versiju

Pie šīs sadaļas man apnika rakstīt, tātad visai liela varbūtība, ka jums apnika lasīt. Turpināšu apgūt Git, paralēli ierakstot par to, kas atzīts par labu esam. Lai vieglāk mācīties.

From → geek stuff

Komentēt

Komentēt

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Mainīt )

Twitter picture

You are commenting using your Twitter account. Log Out / Mainīt )

Facebook photo

You are commenting using your Facebook account. Log Out / Mainīt )

Google+ photo

You are commenting using your Google+ account. Log Out / Mainīt )

Connecting to %s