From 55d67ab9a33992fbb199c029272fc9f52680a026 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1lint=20R=C3=A9thelyi?= <rethelyibalint@gmail.com> Date: Sun, 21 Mar 2021 00:29:11 +0100 Subject: [PATCH] masodik --- guide/ scripts/masodik.md | 463 +++++++++++++++++++++++++++++++++++++ guide/workshop/2_basics.md | 2 +- guide/workshop/3_branch.md | 25 +- 3 files changed, 477 insertions(+), 13 deletions(-) create mode 100644 guide/ scripts/masodik.md diff --git a/guide/ scripts/masodik.md b/guide/ scripts/masodik.md new file mode 100644 index 0000000..4db2ba8 --- /dev/null +++ b/guide/ scripts/masodik.md @@ -0,0 +1,463 @@ +Sziasztok, Blint vagyok! + +MĂĄsfĂŠl ĂŠve kszk-zom, leginkĂĄbb a sysadminban talĂĄlhattok meg, nemrĂŠg lettem megvĂĄlasztva a kubernetesĂźnk rendszergazdĂĄjĂĄnak. A git-et mĂĄr jĂł pĂĄr ĂŠve hasznĂĄlom aktĂvan, el se tudom kĂŠpzelni, hogy ne hasznĂĄljam egy projekthez. + +Ebben a videĂłban szeretnĂŠm nektek a git gyakorlati alkalmazĂĄsĂĄt megmutatni, abba bevezetni titeket. + +Kezdetben szeretnĂŠlek megkĂŠrni, hogy telepĂtsĂŠtek fel a git-et a gĂŠpetekre a segĂŠdletben leĂrtak szerint, vagy hasznĂĄljĂĄtok a linuxos elĹadĂĄshoz kapott vm-eteket. + +Ăn alapbĂłl zsh-t hasznĂĄlok a gĂŠpemen, Ăgy lehet, pĂĄr dolog nem ugyanĂşgy fog kinĂŠzni, mint nĂĄlatok (ha bash-t hasznĂĄltok), de minden ugyanĂşgy mĹąkĂśdik (ez egy POSIX shell), csak kicsit barĂĄtsĂĄgosabban nĂŠz ki đ. + +## KonfigurĂĄciĂł + +ĂllĂtsuk be magunknak a git-et, hogy kĂŠnyelmesen tudjuk hasznĂĄlni. + +ElĹszĂśr is a sajĂĄt adatainkat ĂĄllĂtsuk be, ezt a: + +``` +git config --global user.name "BĂĄlint RĂŠthelyi" +git config --global user.email rethelyibalint@gmail.com +``` + +begĂŠpelĂŠsĂŠvel tehetjĂźk meg. + +EzutĂĄn ĂĄllĂtsuk be, hogy a git milyen szĂśvegszerkesztĹt nyisson meg alapĂŠrtelmezetten, ezt fĹkĂŠnt `commit`-oknĂĄl ĂŠs `merge`-eknĂŠl fogjuk hasznĂĄlni. + +A szĂźksĂŠges parancs pedig: + +``` +git config --global core.editor vim +``` + +Ăn szeretek `vim`-et hasznĂĄlni, de ti nyugodtan beĂĄllĂthattok magatoknak `nano`-t, vagy akĂĄr a VS Code-ot is, sokszor elĂŠg kĂŠnyelmes tud lenni. + +Esetleg windows-on a notepad++-t is beĂĄllĂthatjĂĄtok, ehhez a parancsot a segĂŠdleteben lĂĄthatjĂĄtok. + +### Jelenlegi konfig + +Nah, akkor nĂŠzzĂźk meg, eddig mit alkottunk, hogy nĂŠz ki az Ăśsszes git-es beĂĄllĂtĂĄsunk: + +Ezt a: + +``` +git config --list +``` +parancs kiadĂĄsĂĄval nĂŠzhetjĂźk meg. + +## Alapok + +Ha elakadtok git hasznĂĄlat kĂśzben, akkor rengeteg segĂtsĂŠg lĂŠtezik, szerencsĂŠre a git-nek van egy nagyon jĂł help parancsa, valamint a man page-t is lehet nĂŠzegetni. + +### Git repo + +A git repository, vagy repo egy olyan mappa, mely gites verziĂłkĂśvetve van, azaz bĂĄrhol, ahol talĂĄlunk egy .git mappĂĄt, az valĂłjĂĄban egy git repo. + +KezdjĂźnk is bele, kĂŠszĂtsĂźnk egy sajĂĄt repot! + +Ehhez kĂŠszĂtsĂźnk egy tetszĹleges mappĂĄt, ez lesz a projektĂźnk mappĂĄja, ĂŠs lĂŠpjĂźnk is bele. + +``` +mkdir projektem +cd projektem +``` + +Persze megnĂŠzhetjĂźk, mi a helyzet a git-el, a `git status` paranccsal, de nem fog meglepni minket, hogy semmi (hiszen most hoztuk csak lĂŠtre a projektet). + +``` +git status +hiba hiba.... +``` + +A teljesen Ăźres mappĂĄnk mĂŠg nincs verziĂłkezelĂŠs alatt. Egy `ls -la`-val ezt ellenĹrizni is tudjuk, nem lĂĄtunk `.git` mappĂĄt. + +``` +ls -la +``` + +#### Git init + +InicializĂĄljuk hĂĄt ebbe a mappĂĄba a gitet, ezt a beszĂŠdes `git init` paranccsal tehetjĂźk meg. Ez beĂĄllĂtja nekĂźnk a `master` branchet ĂŠs mĂŠg jĂł pĂĄr alap dolgot (a branch-rĹl majd kĂŠsĹbb beszĂŠlek mĂŠg, egyelĹre annyit elĂŠg tudni, hogy ide kerĂźlnek a mentĂŠspontok sorban, mint egy fa ĂĄga, innĂŠt jĂśn a branch elnevezĂŠs). + +``` +git init +``` + +Ha megint megnĂŠzzĂźk az `ls -la` paranccsal, mostmĂĄr van egy `.git` mappĂĄnk. Ebben benne van minden adatunk a repoval kapcsolatban. + +Amikor egy tĂĄvoli repo-t leszedĂźnk, akkor ezt a `.git` mappĂĄt kapjuk meg, ĂŠs ennek tartalmĂĄbĂłl mĂĄr a gĂŠpĂźnkĂśn talĂĄlhatĂł git alkalmazĂĄs elĹĂĄllĂtja nekĂźnk a master ĂĄg legutĂłbbi mentĂŠspontjĂĄt. + +#### MentĂŠseink tĂĄrolĂĄsa + +A mentĂŠsek tĂĄrolĂĄsĂĄnak fajtĂĄirĂłl a jegyzetben olvashattok, itt annyit emlĂtenĂŠk csak meg, hogy a git minden, azaz tĂŠnyleg minden fĂĄjlt lemĂĄsol, ami verziĂłkezelĂŠs alatt ĂĄll. Azaz, ha feltĂśltĂźnk egy 1 GiB-os videĂłt, majd a kĂśvetkezĹ mentĂŠskor ĂĄtnevezem a videĂłt, akkor mĂĄr 2 GiB-nyi videĂłt fog tartalmazni a repĂłnk. Ha ez megijesztett minket ĂŠs megprĂłbĂĄlnĂĄnk letĂśrĂślni, ettĹl mĂŠg a repĂłban ugyanĂşgy benne lesz, mĂŠretet nem csĂśkentĂźnk vele, persze utĂłlag vissza tudunk menni az adott mentĂŠshez, ĂŠs kitĂśrĂślni belĹle... + +NĂŠzzĂźl meg, mi a helyzet a jelenlegi repĂłnkkal. + +``` +git status +``` + +LĂĄthatjuk, hogy mĂŠg nincs semmilyen mentĂŠspontunk, nincs mit elmentenĂźnk. MegfigyelhetjĂźk, hogy a git prĂłbĂĄl segĂteni nekĂźnk (ezt jĂł sok helyen lĂĄthatjuk majd). + +VegyĂźnk fel egy Ăşj fĂĄjlt: + +``` +echo alma > gyumolcskosar +``` + +Ăjra megnĂŠzve a git status-t, lĂĄthatjuk, megjelent a fĂĄjlunk, de mĂŠg nincs verziĂłkezelĂŠs alatt. + +#### Git status-ok + +Milyen ĂĄllapotok lĂŠteznek egy repo-ban? + +Van az: + +- Untracked: Ami mĂŠg nincs verziĂłkontroll alatt +- Staged: Ami mĂĄr verziĂłkontroll alatt van de mĂŠg nem + kĂŠszĂtettĂźnk rĂłla pillanatkĂŠpet +- Unmodified: Amit mĂĄr elmentettĂźnk ĂŠs azĂłta nem vĂĄltozott +- Modified: Az a fĂĄjl, ami mĂĄr verziĂłkontroll alatt van + ĂŠs vĂĄltozott. Ezt utĂĄnna szintĂŠn Stage-be tudjuk tenni + +LĂĄthatjuk, hogy a git megint prĂłbĂĄl segĂteni nekĂźnk, Ărja is, hogy ahhoz hogy verziĂłkĂśvetve legyen a fĂĄjlunk, hasznĂĄljuk a `git add` parancsot. + +Adjuk is ki: + +``` +git add gyumolcskosar +``` + +Itt a gyĂźmĂślcskosĂĄr helyett Ărhattam volna simĂĄn . -ot, akkor a repo-ban talĂĄlhatĂł Ăśsszes fĂĄjlt bele tette volna (kivĂŠve persze, amit megtĂltunk neki, errĹl is kicsit kĂŠsĹbb). + +MostmĂĄr, ha `git status`-t hĂvunk, megjelenik a gyĂźmĂślcskosarunk, Ăşj fĂĄjlkĂŠnt, `staged` ĂĄllapotba kerĂźlt, akĂĄr el is tudjuk menteni. A mentĂŠshez a `git commit` parancsot adjuk ki. Ekkor megnyĂlik az elĹre beĂĄllĂtott szĂśvegszerkesztĹnk, valamint nĂŠmi informĂĄciĂł a leendĹ mentĂŠspontrĂłl. + +``` +git commit +``` + +LĂĄthatjuk, amit a `git status` Ărna ki, valamint pĂĄr segĂtsĂŠget a git-tĹl. +A #-el kezdĹdĹ sorok kommentek, ezek a commit Ăźzenetbe nem kerĂźlnek bele, ezek csak nekĂźnk szĂłlnak. + +Ărjuk is be az elsĹ sorba, hogy KĂŠszĂtettem egy gyĂźmĂślcskosarat, majd mentsĂźk el a fĂĄjlt, zĂĄrjuk b e a szĂśvegszerkesztĹt. + +A git ĂŠrzĂŠkelte, hogy bezĂĄrtuk a fĂĄjlt, abbĂłl kiolvasta a # nĂŠlkĂźli sorokat ĂŠs hozzĂĄadta a mentĂŠspontunkhoz, mint Ăźzenet, valamint megjelent pĂĄr *hasznos* infĂł is. + +NĂŠzzĂźk, most mi a helyzet a repoban? + +``` +git status +``` + +MĂĄr nem szĂłl semmit amiatt, hogy nincs mentĂŠsĂźnk (hiszen az elĹbb kĂŠszĂtettĂźnk egyet), tovĂĄbbĂĄ azt is Ărja, hogy nincs semmi amin vĂĄltoztattunk volna, azaz errĹl az ĂĄllapotrĂłl nem is tudnĂĄnk Ăşj mentĂŠst kĂŠszĂteni (megegyezne az korĂĄbbival). + +NĂŠzzĂźk meg a kĂśvetkezĹ kĂŠt ĂĄllapotot is, amiben egy fĂĄjl lehet. Ărjuk bele a gyĂźmĂślcskosarunkba, hogy mĂĄr kĂśrte is van benne. + +``` +echo kĂśrte >> gyumolcskosar +``` + +Adjuk ki a `git status`-t: + +LĂĄthatjuk, hogy mostmĂĄr `modified` ĂĄllapotba kerĂźlt a gyĂźmĂślcskosarunk. MentsĂźk is el, de egy kicsit kĂŠnyelmesebb mĂłdon. + +``` +git add gyumolcskosar +git commit -m "Raktam bele kĂśrtĂŠt is" +``` + +Fontos, ne felejtsĂźk el elĹszĂśr hozzĂĄadni a fĂĄjlunkat a stage-hez, a `git add gyumolcskosar` paranccsal. + +KĂŠszĂtsĂźnk egy Ăşj fĂĄjlt `hordo` nĂŠvvel, ĂŠs nĂŠzzĂźk meg, mit Ăr ki a `git status -s` parancs. Ezzel a kapcsolĂłval kĂŠpesek vagyunk egy rĂśvidĂtett stĂĄtuszt lekĂŠrni. + +Add-oljuk, majd commit-oljuk el. + +``` +git add hordo +git status -s +git commit -m "Hoztunk egy hordĂłt" +``` + +#### Gitignore + +OkĂŠ, de mi van, ha nagyon nem szeretnĂŠnk, ha egy fĂĄjlunk verziĂłkezelĂŠs alatt ĂĄllna? Mondjuk a build-ek mappĂĄi, egy IDE ĂĄltal generĂĄlt fĂĄjlokra, esetleg a gites elĹadĂĄs jegyzeteimre. + +Hozzunk lĂŠtre egy `jegyzeteim.txt`-t ĂŠs egy `.gitgnore`-t + +``` +touch jegyzeteim.txt +touxh .gitgnore +``` + +Ha kiadjuk a `git status` parancsot, megjelenik a jegyzeteim. + +Ărjuk bele a a jegyzeteim.txt-t a gitignore-ba. + +``` +echo jegyzeteim.txt >> .gitignore +``` + +Adjuk ki *megint* a `git status` parancsot. Oh, eltĹąnt a jegyzetĂźnk! Pont ezt akartuk, mostmĂĄr a git nem fogja figyelni ezt a fĂĄjlt. +Add-oljuk ĂŠs mentsĂźk el a gitignore-t. + +``` +git add .gitignore; git commit -m "jegyzeteim ignorĂĄlĂĄsa" +``` + +#### FĂĄjlok mozgatĂĄsa + +A git nem tĂĄrol semmi adatot vĂĄltozĂĄsokrĂłl, csak mentĂŠseket kĂŠszĂt. PrĂłbĂĄljuk ki, mi tĂśrtĂŠnik, ha ĂĄtnevezĂźnk egy fĂĄjlt? + +``` +mv gyumolcskosar gyumolcskosar.txt +``` + +Toljunk egy `git status`-t. + +LĂĄthatjuk, hogy az eredeti fĂĄjlt "tĂśrĂśltĂźk", ĂŠs sikeresen lĂŠtrehoztunk egy Ăşj fĂĄjlt a repoban. NĂŠzzĂźk meg, mi tĂśrtĂŠnik, ha add-oljuk a vĂĄltoztatĂĄsokat. + +``` +git add . +git status +``` + +Persze a szokĂĄsos `git status` sem maradhat el. MostmĂĄr lĂĄtszik, hogy ĂĄtnevezĂŠs tĂśrtĂŠnt.## + +A git kĂŠpes rĂĄ, hogy felismerjea fĂĄjlokat ĂŠs eldĂśntse, hogy a kĂŠt fĂĄjl ugyanaz, csak ĂĄtneveztĂźk, mozgattuk, etc.. KĂśvetni nem tudja, csak azt lĂĄtja, hogy lĂŠtrejĂśtt egy Ăşj fĂĄjl, mint ami tĂśrĂślve lett nemrĂŠg. + +#### MentĂŠsi elĹzmĂŠnyek + +A git egyik leghasznosabb parancsa a `git status` utĂĄn a `git log`. + +PrĂłbĂĄljuk is ki: + +``` +git log +``` + +LĂĄthatjuk, milyen mentĂŠspontjaink vannak, ĂŠs a hozzĂĄjuk tartozĂł dolgokat, mint a commit hash vagy az Ăźzenet. + +Picit szebbĂŠ is tehetjĂźk, ha kiadjuk a parancsot a `--oneline` kapcsolĂłval. + +``` +git log --oneline +``` + +MĂĄris csak a lĂŠnyeget lĂĄtjuk. Azt is ĂŠszre vehetjĂźk, csak 7 karaktert kapunk a hash-bĹl. ELĂŠg csak pĂĄr karakter, hogy be tudjuk azonosĂtani a commit-ot. + +## Branch-ek, elĂĄgazĂĄs + +### Mik azok a branch-ek? + +KorĂĄbban mĂĄr emlĂtettem a branch-et, mint fogalmat. KĂŠpzeljĂźk el a git-et, hogy szeretne adatokat, mutatĂłkat tĂĄrolni. Mi van akkor, ha egy mutatĂłbĂłl kĂŠtfelĂŠ is elindulunk? Mondjuk Rick ĂŠs ĂŠn elkezdĂźnk egyĂźtt kĂłdolni... +KĂŠpzeljĂźk el Ăşgy, mint egy fa tĂśrzse, melybĹl ĂĄgak jĂśnnek lĂŠtre. KĂŠszĂtĂźnk egy ĂĄgat Rick-nek ĂŠs egyet nekem. Ăgy tudunk ketten kĂźlĂśn dolgozni, mĂg a master-t nem piszkĂĄltuk. +Ăgy is el lehet kĂŠpzelni egy nagyobb projektnĂŠl, hogy van a master, amin az ĂŠles, jĂłl mĹąkĂśdĹ kĂłd van, ĂŠs van a fejlesztĂŠsi ĂĄg, amin pedig a fejlesztĹk dolgoznak (ez Ăgy azĂŠrt mĂŠg nagyon leegyszerĹąsĂti). + +NĂŠzzĂźnk is egy pĂŠldĂĄt, adjuk ki a `git status` parancsot. + +``` +git status +``` + +LĂĄthatĂł, hogy jelenleg a `master` ĂĄgon vagyunk. NĂŠzzĂźk meg, milyen branch-ek vannak most a repĂłnkban. + +``` +git branch +``` + +MĂŠg csak eyg ĂĄgunk van. Ha kiadjuk a `git branch <Ăşj branch neve>` parancsot, akkor kĂŠszĂźl egy Ăşj ĂĄg, de arra figyeljĂźnk, ilyenkor mĂŠg nem megyĂźnk ĂĄt rĂĄ. +NĂŠzzĂźk is meg, hogy tĂŠnyleg elkĂŠszĂźlt, a `git branch` paranccsal. + +``` +git branch atnevezes +git branch +``` + +Itt a `*` azt jelĂśli, hogy ĂŠppen melyik branch-en vagyunk. Ha kiadnĂĄnk a `git status`-t, amit most nem teszĂźnk meg, ne koptassuk el szegĂŠnyt, ugyanĂşgy lĂĄthatĂĄnk, melyik ĂĄgon vagyunk. + +MenjĂźnk ĂĄt az Ăşj ĂĄgra. + +``` +git checkout atnevezes +``` + +Itt rĂśgtĂśn lĂĄtjuk is, a mĂłdosĂtĂĄsainkkal nem tĂśrtĂŠnt semmi. Ha most elmentjĂźk Ĺket, akkor a jelenlegi ĂĄgra fogja beilleszteni Ĺket. + +``` +git add . +git status +git commit -m "HozzĂĄadtam a txt kiterjesztĂŠst a gyĂźmĂślcskosar fĂĄjlhoz" +``` + +Most ha kiadjuk a `git log --graph --oneline` parancsot, akkor meg is lĂĄthatjuk, hogy nĂŠz ki a fĂĄnk. + +### Hogyan ĂŠpĂźlnek fel? + +Ezt nĂŠzzĂŠtek meg a jegyzetben, rĂśviden annyit, hogy mutatĂłkat, pointereket hasznĂĄl a git, minden mentĂŠspont az elĹzĹre mutat, valamint a megfelelĹ fĂĄjlokra, amiket mĂłdosĂtottunk. + +### Ăgak kĂśzĂśtti mozgĂĄs + +MielĹtt visszatĂŠrnĂŠnk a master-re, nĂŠzzĂźk meg, milyen fĂĄjljaink vannak. + +``` +ls -la +``` + +A gyumolcskosar.txt a lĂŠnyeges. + +TĂŠrjĂźnk vissza a master-re, ĂŠs adjuk ki megint az `ls -la`-t. + +``` +git checkout master +ls -la +``` + +LĂĄthatĂł, hogy visszalĂŠptĂźnk pontosan abba az ĂĄllapotba, ami volt, mielĹtt eljĂśttĂźnk volna, azaz a gyĂźmĂślcskosarat nem is vĂĄltoztattuk meg. Ez azĂŠrt jĂł, mert kĂŠt teljesen elkĂźlĂśnĂźlĹ munkĂĄt szĂŠt tudunk vĂĄlasztani. + +Ărjuk a gyĂźmĂślcskosĂĄr vĂŠgĂŠre, hogy szĹlĹ ĂŠs mentsĂźk is el. + +``` +echo szolo >> gyumolcskosar +git add . +git commit -m "Tettem bele szĹlĹt is" +``` + +Most kiadva a `git log --graph --oneline`-t mĂĄr egy ĂŠrdekesebb eredmĂŠnyt lĂĄthatunk. + +HovĂĄ tĹąnt a fĂĄjlunk? A git nem fogja alapbĂłl jelezni nekĂźnk azt, amit nem lĂĄt a jelenlegi mentĂŠsbĹl visszamenve. +Ahhoz hogy lĂĄssuk a mĂĄsik ĂĄgat is, tegyĂźk hozzĂĄ a `--all` kapcsolĂłt. + +``` +git log --graph --oneline --all +``` + +Nah, rĂśgtĂśn lĂĄtjuk a mĂĄsik ĂĄgat is. + +MenjĂźnk vissza az ĂĄtnevezĂŠs ĂĄgra sĂŠ mĂłdosĂtsuk kicsit. + +``` +git checkout atnevezes +``` + +NevezzĂźk ĂĄt a hordĂłt hordĂł.txt-re, majd mentsĂźk is el a munĂĄnkat. + +``` +mv hordo hordo.txt +git add . +git commit -m "Adtam kiterjesztĂŠst a hordĂłnak is" +``` + +Egy megismĂŠtelt `git log`-al lĂĄthatjuk is a fĂĄnkat. + +``` +git log --graph --oneline --all +``` + +### Merge-elĂŠs + +Az egyik legfontosabb dolog az ĂĄgak lĂŠtrehozĂĄsa utĂĄn, hogy azokat be is tudjuk olvasztani valahova. A feladat az lenne, hogy a masterre beillesszĂźk az ĂĄtnevezĂŠs ĂĄgon vĂŠgzett mĂłdosĂtĂĄsokat. +Ehhez a `git merge <branch neve>` parancsot hasznĂĄlhatjuk. Ez a parancs a kivĂĄlasztott ĂĄgat megprĂłbĂĄlja beolvasztani oda, ahol jeleneleg a `HEAD` mutatĂłnk van. + +MenjĂźnk is vissza a masterre. ĂŠs prĂłbĂĄljuk meg merge-elni az ĂĄtnevezĂŠs ĂĄgat. + + +``` +git checkout master +git merge atnevezes +``` + +Ekkor meg fog nyĂlni a szĂśvegszerkesztĹnk, ugyanis egy +Ăşj mentĂŠspontot fogunk kĂŠszĂteni a `master` ĂĄgunkra. +A feladott merge Ăźzeneten nem kell mĂłdosĂtanunk, teljesen +jĂł Ăgy. + +A merge lefut ĂŠs lĂĄthatjuk mi is tĂśrtĂŠnt. +Most egy Ăşjabb `git log --graph --oneline --all`-al ezt lĂĄthatjuk. +Ez a merge commit egyszerre mutat kĂŠt ĂĄgra is. + +#### Merge conflict + +Mi van akkor, ha ketten egyszerre ugyanazat vĂĄltoztatjuk? +Ăgy dĂśntĂśttĂźnk, Rick barĂĄtommal szeretnĂŠnk pĂĄlinkĂĄt fĹzni, szĂłval a hordĂłba teszzĂźk ĂzlĂĄs szerint pĂĄr gyĂźmĂślcsĂśt. + +MenjĂźnk ĂĄt a sajĂĄt branch-Ăźnkre. + +``` +git checkout -b blint +``` + +A -b kapcsolĂłval lĂŠtre tudunk hozni nemlĂŠtezĹ branch-et a checkout-nak megadva. + +Ha kiadjuk megint a `git branch`-et, lĂĄthatjuk, mĂĄr hĂĄrom ĂĄg is van. + +TegyĂźnk bele a hordĂłba egy nekĂźnk tetszĹ gyĂźmĂślcsĂśt. + +``` +echo korte >> hordo.txt +``` + +MentsĂźl is el. A -a kapcsolĂłval egy lĂŠpĂŠst megint meg tudok spĂłrolni. + +``` +git commit -a -m "Raktam bele kĂśrtĂŠt" +``` + +Rick ekĂśzben Ăşgy dĂśntĂśtt, ugyanebbe a hordĂłba szilvĂĄt szeretne tenni. MenjĂźnk ĂĄt a master-re ĂŠs tegyĂźk meg ott. + +TehĂĄt: +``` +git checkout master +echo szilva >> hordo.txt +git commit -a -m "Raktam bele szilvĂĄt" +``` + +Ha megnĂŠzzĂźk megint a grĂĄfunkat, lĂĄthatjuk mi a helyzet jelenleg a reponkban. + +``` +git log --graph --oneline --all +``` + +HĂĄt most prĂłbĂĄljuk meg merge-lni. + +``` +git merge blint +``` + +Oh, no, merge conflict keletkezett. +Nem kell megijedni, nem a vilĂĄg vĂŠge ĂŠs a git segĂt ahol tud. + +Az a helyzet, hogy egyszerre ugyanazt a sort mĂłdosĂtottuk ĂŠs a git nem tudta +eldĂśnteni mit tegyen. Megtartsa az egyiket vagy mindkettĹt? MĂŠgis mi legyen? + +Ezeket a kĂŠrdĂŠseket nekĂźnk kell megvĂĄlaszolnunk. + +ElĹszĂśr nĂŠzzĂźk meg, mi a stĂĄtusz. + +``` +git status +``` + +Ilyenkor a git beĂrja a fĂĄjlba mindkĂŠt branch vĂĄltozatĂĄt, ezt meg is jelĂśli nekĂźnk, ĂŠs tĹlĂźnk vĂĄrja a megoldĂĄst. + +Nincs mit tenni, mint kitalĂĄlni, hogy mi maradjon a fĂĄjlban. + +Itt lĂĄthatjuk nyilakkal a HEAD ĂŠs a blint branch ĂĄltal eszkĂśzĂślt mĂłdosĂtĂĄsokat, egyenlĹsĂŠgjellel elvĂĄlasztva egymĂĄstĂłl. + +CsinĂĄljunk egy vegyes pĂĄlinkĂĄt, legyen benne mind a kettĹ. + +Ha megnĂŠzzĂźk a stĂĄtuszt, lĂĄthatjuk, mĂŠg mindig ugyanaz a helyzet, mint korĂĄbban. AmĂg nem mentjĂźk el a mĂłdosĂtĂĄsunkat, addig ezt fogja kiĂrni. + +``` +git commit -a -m "blint branch mergelve ĂŠs konflikt megoldva" +``` + +NĂŠzzĂźk meg a grĂĄfot ezutĂĄn. + +``` +git --graph --oneline --all +``` + +LĂĄtjuk, a merge commit-unk egyben a konfliktus megoldĂĄsĂĄt is tartalmazza. + +Most hogy tudjuk az alapokat, mĂĄr csak mindezt kĂśzĂśsen kell vĂŠgezzĂźk, online. ErrĹl majd a gyakorlaton lesz szĂł. + +Addig is szĂŠp hĂŠtvĂŠgĂŠt, hetet, ki mikor nĂŠzi meg kĂvĂĄnok nektek! \ No newline at end of file diff --git a/guide/workshop/2_basics.md b/guide/workshop/2_basics.md index 76e78e1..1c016e0 100644 --- a/guide/workshop/2_basics.md +++ b/guide/workshop/2_basics.md @@ -329,7 +329,7 @@ mit elmenteni. NĂŠzzĂźk meg a tovĂĄbbi kĂŠt ĂĄllapotot is amiben lehet egy fĂĄjl. Ărjuk bele a gyumolcskosar fĂĄjlba, hogy `korte` -```gyumolcskosar +``` alma korte ``` diff --git a/guide/workshop/3_branch.md b/guide/workshop/3_branch.md index 8047a77..a73f791 100644 --- a/guide/workshop/3_branch.md +++ b/guide/workshop/3_branch.md @@ -1,6 +1,6 @@ # Branch-ek, elĂĄgazĂĄs -#### Mik azok a branch-ek? +## Mik azok a branch-ek? TalĂĄn legegyszerĹąbb, ha elĹbb kĂŠszĂtĂźnk egyet. @@ -98,7 +98,7 @@ meg is lĂĄthatjuk a jelenlegi helyzetet a mi fĂĄnkban: * 2a685fc KĂŠszĂtettem egy gyĂźmĂślcskosarat ``` -#### Hogy ĂŠpĂźl fel? +## Hogy ĂŠpĂźl fel? ElĹszĂśr is, ahhoz hogy tudja a git melyik mentĂŠspont utĂĄn melyik jĂśn, mutatĂłkat hasznĂĄl ehhez az ĂĄbrĂĄhoz @@ -338,7 +338,7 @@ Most egy Ăşjabb `git branch` kiadĂĄsĂĄval mĂĄr lĂĄthatĂł, hogy TegyĂźnk bele a `hordo.txt`-be egy nekĂźnk tetszĹ gyĂźmĂślcsĂśt. -```gyumolcs.txt +``` korte ``` @@ -387,13 +387,13 @@ $ git log --graph --oneline --all Na ĂŠs akkor most mergeljĂźnk be a master-re a mĂłdosĂtĂĄsaink. ``` -$ git merge lacko +$ git merge blint Auto-merging hordo.txt CONFLICT (content): Merge conflict in hordo.txt Automatic merge failed; fix conflicts and then commit the result. ``` -Oh! Merge conlict keletkezett. +Oh! Merge conflict keletkezett. Nem kell megijedni, nem a vilĂĄg vĂŠge ĂŠs a git segĂt ahol tud. Az a helyzet, hogy egyszerre ugyanazt a sort mĂłdosĂtottuk ĂŠs a git nem tudta @@ -401,7 +401,7 @@ eldĂśnteni mit tegyen. Megtartsa az egyiket vagy mindkettĹt? MĂŠgis mi legyen? Ezeket a kĂŠrdĂŠseket nekĂźnk kell megvĂĄlaszolnunk. -ElĹszĂśr nĂŠzzĂźk meg, mit a stĂĄtusz. +ElĹszĂśr nĂŠzzĂźk meg, mi a stĂĄtusz. ``` $ git status @@ -428,14 +428,14 @@ NĂŠzzĂźk meg mi van a fĂĄjlunkban. szilva ======= korte ->>>>>> lacko +>>>>>> blint ``` Mit is jelent ez? KettĂŠ szedte az bejĂśvĹ adatokat a git arra ahovĂĄ mergeltĂźnk -(`HEAD`) ĂŠs amit mergeltĂźnk (`lacko`). KĂśztĂźk pedig egy sor "======="-t lĂĄthatunk. +(`HEAD`) ĂŠs amit mergeltĂźnk (`blint`). KĂśztĂźk pedig egy sor "======="-t lĂĄthatunk. Itt mĂĄr csak ĂĄtĂrjuk a fĂĄjlt ahogy szeretnĂŠnk, hogy kinĂŠzzen. -```hordo.txt +``` korte ``` @@ -459,15 +459,16 @@ TovĂĄbbra is azt Ărja, amit az imĂŠnt. AmĂg nem commitoljuk a mĂłdosĂtĂĄsunk, addig ezt is fogja. HĂĄt akkor mentsĂźnk. ``` -git commit -a -m "lacko branch mergelve ĂŠs konflikt megoldva" +git commit -a -m "blint branch mergelve ĂŠs konflikt megoldva" ``` NĂŠzzĂźk meg hogy nĂŠz ki a grĂĄfunk ezutĂĄn. ``` -* 7341274 (HEAD -> master) lacko branch mergelve ĂŠs konflikt megoldva +* 7341274 (HEAD -> master) blint + branch mergelve ĂŠs konflikt megoldva |\ -| * 6d6d1ac (lacko) Raktam a hordĂłba kĂśrtĂŠt +| * 6d6d1ac (blint) Raktam a hordĂłba kĂśrtĂŠt * | 41f1c05 Raktam szilvĂĄt a hordĂłba |/ * 366140d Merge branch 'atnevezes' -- GitLab