From 07bf794a80dd023dee14289f68b38fcf154d9939 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20L=C3=A1szl=C3=B3?= <rlacko99@gmail.com> Date: Fri, 9 Oct 2020 10:43:17 +0200 Subject: [PATCH] better workshop basics --- docs/workshop/2_basics.md | 118 +++++++++++++++++++++++--------------- 1 file changed, 72 insertions(+), 46 deletions(-) diff --git a/docs/workshop/2_basics.md b/docs/workshop/2_basics.md index 25d0072..387a3f4 100644 --- a/docs/workshop/2_basics.md +++ b/docs/workshop/2_basics.md @@ -19,7 +19,7 @@ $ git help config De ha csak egy gyors ĂĄttekintĂŠsre van szĂźksĂŠged: ``` -\$ git config -h +$ git config -h usage: git config [<options>] Config file location @@ -40,10 +40,10 @@ Action A Git repository egy olyan mappa, mely Git verziĂłkezelĂŠs alatt ĂĄll. -PĂŠldĂĄul az a mappa, ahol van egy .git mappa, az egy git repo. +TehĂĄt az a mappa, ahol van egy .git mappa, az egy git repo. ``` -\$ ls -al +$ ls -al total 20 drwxrwxr-x 4 rlacko rlacko 4096 okt 8 12:59 . drwxrwxr-x 3 rlacko rlacko 4096 okt 7 12:04 .. @@ -63,19 +63,20 @@ $ cd projektem ``` -NĂŠzzĂźk meg, hogy mi a helyzet a git-el ezzel a mappĂĄban. +NĂŠzzĂźk meg, hogy mi a helyzet a git-el. Ehhez a `git status` parancsot tudjuk hasznĂĄlni. Ez a parancs a jelenlegi git repo-nkrĂłl kĂŠpes informĂĄciĂłkat kiĂrni. ``` -\$ git status +$ git status fatal: not a git repository (or any of the parent directories): .git ``` Teljesen Ăźres a mappa, mĂŠg nincs verziĂł kontroll alatt. -`ls -al` -el tudjuk is ellenĹrizni. +`ls -al` -el tudjuk is ellenĹrizni, hogy nincsen `.git` +mappa. TegyĂźk verziĂłkontroll alĂĄ a `git init` paranccsal. Ez beĂĄllĂtja nekĂźnk a `master` branchet ĂŠs mĂĄs alap dolgokat. @@ -86,7 +87,7 @@ egy fa ĂĄga. <div style="text-align:center"><img src="workshop/img/basic-branching.png" alt="Git branch" /></div> ``` -\$ git init . +$ git init . Initialized empty Git repository in .../projektem/.git/ ``` @@ -94,7 +95,7 @@ Initialized empty Git repository in .../projektem/.git/ Ha megnĂŠzzĂźk, mostmĂĄr van egy .git mappĂĄnk ``` -\$ ls -al +$ ls -al total 12 drwxrwxr-x 3 rlacko rlacko 4096 okt 8 16:52 . drwxrwxr-x 12 rlacko rlacko 4096 okt 8 16:49 .. @@ -131,10 +132,11 @@ Erre egyik megoldĂĄs mĂĄs verziĂłkezelĹknĂŠl, hogy optimalizĂĄlnak A Git ezt Ăşgy oldja meg, hogy egy mentĂŠs az Ăśsszes fĂĄjlt egy az egybe lemĂĄsolja. PĂŠldĂĄul egyik mentĂŠs alkalmĂĄval feltĂśltĂśk egy 1gb-os videĂłt, -majd a kĂśvetkezĹ mentĂŠskor tĂśrlĂśm, akkor az a videĂł -benne marad a git repo-ban. -Persze utĂłlag tudunk olyat, hogy kitĂśrĂśljĂźk az adott mentĂŠsbĹl, -de ez nem ajĂĄnlott hasznĂĄlata a Git-nek. +majd a kĂśvetkezĹ mentĂŠskor pĂĄr bitet ĂĄtĂrok, akkor mĂĄr +2gb-nyi videĂł lesz a repĂłban ĂŠs ha utĂĄna egy mĂĄsik mentĂŠsel +ki is tĂśrĂśljĂźk, az attĂłl mĂŠg megmarad. +Persze utĂłlag tudunk olyat, hogy visszmegyĂźnk ĂŠs kitĂśrĂśljĂźk +az adott mentĂŠsbĹl, de ez nem ajĂĄnlott hasznĂĄlata a Git-nek. OkĂŠ, tehĂĄt pĂŠldĂĄul mappĂĄkba bemĂĄsolja a mentĂŠseinket valamilyen mĂłdon, de mĂŠgis hova? @@ -154,12 +156,11 @@ $ tree .git/objects/ ``` MĂŠgis mik ezek? -A Git tĂśmĂśrĂtve ĂŠs titkosĂtottan hashelve tĂĄrolja a fĂĄjlokat. +A Git tĂśmĂśrĂtve ĂŠs hashelve tĂĄrolja a fĂĄjlokat. A hashelĂŠsnek annyi a lĂŠnyege, hogy a fĂĄjl teljes tartalmĂĄn ĂĄtfuttatunk egy algoritmust, mely ezutĂĄn kikĂśp egy 0-9a-z szĂśveget ĂŠs ha akĂĄr 1 bit-et is vĂĄltoztatunk egy fĂĄjlon, akkor -mĂĄs lesz a hash-e, sĹt a titkosĂtĂĄs miatt mĂŠg feltĂśrni is -lehetetlen. +mĂĄs lesz a hash-e. TehĂĄt ha valaki elcommitol valamit, akkor azt mĂĄr mĂĄs nem tudja megvĂĄltoztatni anĂŠlkĂźl, hogy vĂĄltozna a hash. Ăgy tudjuk biztosĂtani a teljes konzisztenciĂĄt az elosztott @@ -168,12 +169,23 @@ repo-k kĂśzĂśtt. Hash-t lĂĄthatunk pĂŠldĂĄul a mentĂŠspontjainkon, fĂĄjljainkon, stb. EnnĂŠl jobban nem megyek bele a tĂŠmĂĄba, de ĂŠrdekes olvasmĂĄny. -A lĂŠnyeg, hogy mindenhol ott vannak a hash-ek, ĂŠs erre mindjĂĄrt -lĂĄtunk pĂŠldĂĄt. #### VĂĄltoztatĂĄsok mentĂŠse -Na de hogyan kĂŠszĂtĂźnk ilyen mentĂŠseket? +Hogyan nĂŠz ki egy mentĂŠs? + +``` +commit c45abc3d64c7840b4088b77d5a60d02198a78854 +Author: Rafael LĂĄszlĂł <rlacko99 [AT] gmail.com> +Date: Thu Oct 8 17:19:28 2020 +0200 + + KĂŠszĂtettem egy gyĂźmĂślcskosarat +``` + +Van egy commit-nak `commit hash`-e, `kĂŠszĂtĹje`, +`lĂŠtrehozĂĄsi dĂĄtumja`, ĂŠs `commit Ăźzenete` + +Na de hogyan kĂŠszĂtĂźnk egy mentĂŠspontot? A fĂĄjljainknak kĂźlĂśnbĂśzĹ ĂĄllapotai lĂŠtezhetnek egy repo-ban. @@ -187,23 +199,22 @@ repo-ban. NĂŠzzĂźk meg ezen az ĂĄbrĂĄn ĂŠs egy pĂŠlda projekten keresztĂźl: -<div style="text-align:center"><img src="workshop/img/git_lifecycle.png" alt="Local Version Control Systems" /></div> +<div style="text-align:center"><img src="workshop/img/git_lifecycle.png" alt="Git Life cycle" /></div> -Mi a jelenlegi helyzet a repo-ban, miutĂĄn inicializĂĄltuk? +Mi a jelenlegi helyzet a frissen inicializĂĄlt repo-ban? ``` -\$ git status +$ git status On branch master No commits yet nothing to commit (create/copy files and use "git add" to track) ``` -LĂĄthatjuk, hogy mĂŠg nincsenek mentĂŠspontjaink ĂŠs nincs mit +LĂĄthatjuk, hogy mĂŠg nincsenek mentĂŠspontjaink, nincs mit elmentenĂźnk ĂŠs egyben a git prĂłbĂĄl segĂteni, hogy hogyan tudunk stagelni valamit. Ezt tĂśbb helyen is megfigyelhetjĂźk a git-ben. -PrĂłbĂĄl segĂteni ahol csak tud, minĂŠl kĂŠnyelmesebbĂŠ tĂŠve -a munkĂĄnkat. +PrĂłbĂĄl segĂteni ahol csak tud. VegyĂźnk fel egy Ăşj fĂĄjlt. @@ -214,13 +225,13 @@ echo 'alma' > gyumolcskosar _Itt az `echo` egy olyan parancs volt, mely kiĂrta nekĂźnk a terminĂĄlra azt, hogy "alma", de ĂĄtirĂĄnyĂtottuk egy fĂĄjlba a `>` operĂĄtorral ĂŠs mivel nem lĂŠtezett a fĂĄjl, azt lĂŠtre is -hozta._ +hozta._ - Linux magic #01 Ăjra megvizsgĂĄlva a status-t, lĂĄtni fogjuk, hogy megjelent, de mĂŠg nincs verziĂłkontroll alatt. ``` -\$ git status +$ git status ... Untracked files: (use "git add <file>..." to include in what will be committed) @@ -233,23 +244,23 @@ Ahhoz, hogy git alĂĄ helyezzĂźk, a `git add <fĂĄjl>` parancsot fogjuk kiadni. _Ezek a parancsok mind kĂŠpesek rĂĄ, hogy Unix-os mĂłdon tĂśbb fĂĄjlra is kiadhatĂłak legyenek. -PĂŠldĂĄul a `<fĂĄjl>` lehet `*.jpg`amivel minden .jpg fĂĄjlt kijelĂślĂźnk a jelenlegi mappĂĄban"_ +PĂŠldĂĄul a `<fĂĄjl>` lehet `*.jpg`amivel minden .jpg fĂĄjlt kijelĂślĂźnk a jelenlegi mappĂĄban"_ - Linux magic #02 ``` -\$ git add gyumolcskosar +$ git add gyumolcskosar ``` EzutĂĄn megjelenik, mint Ăşj fĂĄjl a git adatbĂĄzisĂĄban. ``` -\$ git status +$ git status ... Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: gyumolcskosar ``` -A fĂĄjlunk ĂĄtkerĂźlt staged mĂłdba ĂŠs ezt akĂĄr mostmĂĄr el is +A fĂĄjlunk ĂĄtkerĂźlt staged mĂłdba ĂŠs ezt akĂĄr el is tudjuk menteni. A mentĂŠshez a `git commit` parancsot tudjuk hasznĂĄlni. @@ -276,7 +287,7 @@ A # -el kezdĹdĹ sorok kommentek, ezek nem fognak a commit majd mentsĂźk el a fĂĄjlt ĂŠs zĂĄrjuk be a szĂśvegszerkesztĹt. ``` -\$ git commit +$ git commit [master (root-commit) c45abc3] KĂŠszĂtettem egy gyĂźmĂślcskosarat 1 file changed, 1 insertion(+) create mode 100644 gyumolcskosar @@ -291,7 +302,7 @@ TovĂĄbbĂĄ megjelent pĂĄr tovĂĄbbi hasznos informĂĄciĂł is. IsmĂŠtelten nĂŠzzĂźk meg mi a helyzet a reponkban: ``` -\$ git status +$ git status On branch master nothing to commit, working tree clean ``` @@ -327,7 +338,7 @@ parancsnak ĂĄttudunk adni Ăşgynevezett kapcsolĂłkat. PĂŠldĂĄul `git commit -m <message>`. Ez annyit spĂłrol meg nekĂźnk, hogy nem kell szĂśvegszerkesztĹt megnyitnia a git-nek mikor Ăşj commit-ot kĂŠszĂtĂźnk, -hanem ĂĄtraktuk a parancsot olyan mĂłdba, +hanem ĂĄtrakjuk a parancsot olyan mĂłdba, hogy vĂĄrjon egy szĂśveget, mint mentĂŠshez kapcsolĂłdĂł Ăźzenet. ĂltalĂĄban logikusak az egy betĹąs rĂśvidĂtĂŠsek: `-m: message, -a: all`, de tudunk hosszabb verziĂłkat is @@ -356,19 +367,29 @@ mit Ăr ki a `git status -s`. Mi van akkor, ha valami fĂĄjlt nem szeretnĂŠnk verziĂłkontroll alĂĄ tenni? Gondolok pĂŠldĂĄul a build-ek mappĂĄira vagy -adott EszkĂśz ĂĄltal generĂĄlt fĂĄjlokra? +egy IDE ĂĄltal generĂĄlt fĂĄjlokra. Hozzunk lĂŠtre egy `.gitignore` fĂĄjlt ĂŠs egy `jegyzeteim.txt` fĂĄjlt. EzutĂĄn adjuk ki a `git status` parancsot. -LĂĄthatjuk, hogy a `jegyzeteim` fĂĄjl nem jelent meg, tehĂĄt -ignorĂĄljuk a fĂĄjlt. Stage-ljĂźk, majd mentsĂźk el a fĂĄjlt a +LĂĄthatjuk, hogy a `jegyzeteim` fĂĄjl megjelent. + +Most Ărjuk be a fĂĄjl nevĂŠt a `.gitignore`-ba. + +```.gitignore +jegyzeteim.txt +``` + +Ezt kĂśvetĹen adjuk ki Ăşjra a `git status` parancsot. +Oh, eltĂźnt a fĂĄjlunk! Pont ezt akartuk, mostmĂĄr nem fogja +figyelni a git ha ilyen fĂĄjlt kĂŠszĂtĂźnk. +MostmĂĄr csak stageljĂźk ĂŠs mentsĂźk el az Ăşj fĂĄjlunk. `git add .`, `git commit -m "jegyzeteim ignorĂĄlĂĄsa"` #### FĂĄjlok mozgatĂĄsa A git semmi adatot nem tĂĄrol vĂĄltozĂĄsokrĂłl, csak -mentĂŠseket kĂŠszĂt, ahogy emlĂtettem az elĹzĹ rĂŠszben. +mentĂŠseket kĂŠszĂt, ahogy emlĂtettem. PrĂłbĂĄljuk ki, hogy mi tĂśrtĂŠnik ha ĂĄtnevezĂźnk egy fĂĄjlt? ``` @@ -392,7 +413,7 @@ no changes added to commit (use "git add" and/or "git commit -a") LĂĄthatĂł, hogy az eredeti fĂĄjlt "tĂśrĂśltĂźk" ĂŠs egy Ăşj fĂĄjlt vettĂźnk fel a repo-ba. Ărdekes, mi lenne ha stagelnĂŠnk -a vĂĄltoztatĂĄsokat? +a vĂĄltoztatĂĄsokat `git add .` -al? ``` $ git add . @@ -406,7 +427,9 @@ Changes to be committed: Most meg mĂĄr lĂĄtszik, hogy csak ĂĄtnevezĂŠs tĂśrtĂŠnt? A Git kĂŠpes rĂĄ, hogy felismerje a fĂĄjlokat ĂŠs eldĂśntse, hogy -ugyanaz volt a kettĹ, tehĂĄt ĂĄtnevezĂŠs tĂśrtĂŠnt. +ugyanaz volt a kettĹ, tehĂĄt ĂĄtnevezĂŠs, mozgatĂĄs, stb. tĂśrtĂŠnt. +De nem tudja kĂśvetni a fĂĄjlt, csak lĂĄtja, hogy jĂśtt egy Ăşj +fĂĄjl ami szinte ugyanaz, mint ami tĂśrĂślve lett nemrĂŠg. #### MentĂŠsi elĹzmĂŠnyek @@ -441,18 +464,21 @@ Date: Thu Oct 8 17:19:28 2020 +0200 Itt azt lĂĄthatjuk, hogy milyen mentĂŠspontjaink vannak ĂŠs a hozzĂĄjuk tartozĂł dolgokat, mint a commit hash vagy -a hozzĂĄ tartozĂł Ăźzenet. +a Ăźzenet. Picit tegyĂźk szebbĂŠ. Adjuk ki az elĹzĹ parancsot a -`--graph --oneline` kapcsolĂłkkal. +`--oneline` kapcsolĂłval. ``` -* 80560db (HEAD -> master) jegyzeteim ignorĂĄlĂĄsa -* 30bf35d Hoztunk egy hordĂłt -* b677a86 Raktam bele egy kĂśrtĂŠt -* c45abc3 KĂŠszĂtettem egy gyĂźmĂślcskosarat +80560db (HEAD -> master) jegyzeteim ignorĂĄlĂĄsa +30bf35d Hoztunk egy hordĂłt +b677a86 Raktam bele egy kĂśrtĂŠt +c45abc3 KĂŠszĂtettem egy gyĂźmĂślcskosarat ``` -MĂĄris szebben nĂŠz ki :) +MĂĄris csak a lĂŠnyeget lĂĄtjuk. Az is lĂĄthatĂł, hogy csak 7 +karaktert kaptunk a hashbĹl. +ElĂŠg csak pĂĄr karakter, hogy beazonosĂtsunk +pĂŠldĂĄul egy commitot a hash-ĂŠvel. [ElĹzĹ](workshop/1_installation) | [KĂśvetkezĹ](workshop/3_branch) -- GitLab