diff --git a/docs/workshop/3_branch.md b/docs/workshop/3_branch.md index 123a358edbf6a059ae9ff1bbf3b26ecb34810978..b34f296ecde9b4598bc802fdef51eb461998f920 100644 --- a/docs/workshop/3_branch.md +++ b/docs/workshop/3_branch.md @@ -1,3 +1,252 @@ # Branch-ek, elĂĄgazĂĄs +#### Mik azok a branch-ek? + +TalĂĄn legegyszerĹąbb, ha elĹbb kĂŠszĂtĂźnk egyet. + +Az elĹzĹ tĂŠmakĂśrben ĂĄtneveztĂźnk egy fĂĄjlt, de +nem commitoltuk el. +Ezt ne tegyĂźk meg, hanem kĂŠszĂtsĂźnk egy ĂĄgat onnan, +ahol jĂĄrtunk mondjuk azzal a nĂŠvvel, hogy `atnevezes`. + +ElĹszĂśr nĂŠzzĂźk meg, mi a helyzet jelenleg a +`git status` paranccsal. + +``` +$ git status +On branch master +Changes to be committed: + (use "git restore --staged <file>..." to unstage) + renamed: gyumolcskosar -> gyumolcskosar.txt +``` + +LĂĄthatĂł, hogy a `master` nevĹą ĂĄgon vagyunk. +Ezt kĂŠpzeljĂźk el Ăşgy, mint egy fa tĂśrzse, melybĹl +le ĂĄgazunk. +NĂŠzzĂźk meg jelenleg milyen branch-ek vannak a repo-nkban +a `git branch` paranccsal. + +``` +$ git branch + +* master +``` + +LĂĄthatĂł, hogy mĂŠg csak egy van. +Ha a `git branch <Ăşj branch neve>` parancsot kiadjuk, akkor +kĂŠszĂźl egy Ăşj ĂĄg, de arra figyeljĂźnk, hogy 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 +* master +``` + +Itt a `*` azt jelĂśli, hogy melyiken vagyunk jelenleg. +Ha kiadnĂĄnk a `git status` parancsot, akkor is lĂĄthatnĂĄnk +melyik ĂĄgon vagyunk. + +GyerĂźnk ĂĄt az Ăşj ĂĄgra. +Ehhez a `git checkout <ĂĄg neve>` parancsot tudjuk hasznĂĄlni. + +``` +$ git checkout atnevezes +D gyumolcskosar +A gyumolcskosar.txt +Switched to branch 'atnevezes' +``` + +Itt azt is lĂĄtjuk azonnal, hogy a mĂłdosĂtĂĄsainkkal nem tĂśrtĂŠnt +semmi. +Ezek jelenleg mĂŠg `staged`-be vannak ĂŠs ha elmentjĂźk Ĺket +a commital, akkor az ĂŠpp jelenlegi ĂĄgra fogja +beilleszteni Ĺket. + +NĂŠzzĂźk meg `git status`-al, hogy mi a helyzet. + +``` +$ git status +On branch atnevezes +Changes to be committed: + (use "git restore --staged <file>..." to unstage) + renamed: gyumolcskosar -> gyumolcskosar.txt +``` + +LĂĄtszik is, hogy az `atnevezes` ĂĄgon vagyunk. +MentsĂźk el ide a mĂłdosĂtĂĄsaink +`HozzĂĄadtam a txt kiterjesztĂŠst a gyĂźmĂślcskosar fĂĄjlhoz` +Ăźzenettel + +``` +$ git commit -m "HozzĂĄadtam a txt kiterjesztĂŠst a gyĂźmĂślcskosar fĂĄjlhoz" +[atnevezes 7de1c94] HozzĂĄadtam a txt kiterjesztĂŠst a gyĂźmĂślcskosar fĂĄjlhoz + 1 file changed, 0 insertions(+), 0 deletions(-) + rename gyumolcskosar => gyumolcskosar.txt (100%) +``` + +Ezt kĂśvetĹen ha kiadjuk a `git log --graph --oneline` parancsot, akkor +meg is lĂĄthatjuk a jelenlegi helyzetet a mi fĂĄnkban: + +``` +* 7de1c94 (HEAD -> atnevezes) HozzĂĄadtam a txt kiterjesztĂŠst a gyĂźmĂślcskosar fĂĄjlhoz +* 80560db (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 +``` + +#### 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 +hasonlĂł mĂłdon: + +<div style="text-align:center"><img src="workshop/img/commits-and-parents.png" alt="Commits and parents" /></div> + +A mentĂŠspontjaink az elĹzĹre mutatnak. +Ahogy lĂĄthattuk az elĹzĹ fejezetben, a mentĂŠspontok pedig +mutatnak a megfelelĹ fĂĄjlokra amiket ĂŠpp mĂłdosĂtottunk. + +VizsgĂĄljuk meg a jelenlegi repo-nkat, hogy pontosan +mi merre is van. + +<div style="text-align:center"><img src="workshop/img/tree_with_one_branch.png" alt="Tree with one branch" /></div> + +A mentĂŠspontok kĂŠpesek mutatni az elĹzĹre, ezt lĂĄthatjuk +az ĂĄbrĂĄn. +TovĂĄbbĂĄ azt is lĂĄtjuk, hogy van mĂŠg 3 pointerĂźnk. +Az egyik `master`, ez az ami a legfrissebb mentĂŠsre +mutat a master ĂĄgon. +Ugyanez igaz az `atnevezes` ĂĄg esetĂŠben, de oda mĂŠg mutat +egy `HEAD` mutatĂł is. +Ez az a mutatĂł ami azt jelzi, hogy hol vagyunk mi jelenleg. +Mikor egy Ăşj mentĂŠst hozunk lĂŠtre, akkor az a mentĂŠs ide +fog mutatni. +EzĂŠrt is kellett figyelni az elĹzĹnĂŠl, hogy mentĂŠs +elĹtt ĂĄtvĂĄltsunk a megfelelĹ ĂĄgra. + +#### Ăgak kĂśzti mozgĂĄs + +MĂŠg mielĹtt vissza mennĂŠnk a master-re, nĂŠzzĂźk meg milyen +fĂĄjljaink vannak az `ls -al` -el. + +``` +$ ls -al +total 20 +drwxrwxr-x 3 rlacko rlacko 4096 okt 8 21:07 . +drwxrwxr-x 12 rlacko rlacko 4096 okt 8 16:49 .. +drwxrwxr-x 8 rlacko rlacko 4096 okt 9 15:01 .git +-rw-rw-r-- 1 rlacko rlacko 15 okt 8 20:43 .gitignore +-rw-rw-r-- 1 rlacko rlacko 11 okt 8 17:29 gyumolcskosar.txt +-rw-rw-r-- 1 rlacko rlacko 0 okt 8 20:09 hordo +-rw-rw-r-- 1 rlacko rlacko 0 okt 8 20:42 jegyzeteim.txt +``` + +Egy pĂĄr extra adatot is kapunk, de nekĂźnk most a +`gyumolcskosar.txt` a lĂŠnyeges. + +Most gyerĂźnk vissza a `master` ĂĄgra a `git checkout <ĂĄg neve>` +paranccsal. + +``` +$ git checkout master +Switched to branch 'master' +``` + +Most adjuk ismĂŠt ki az `ls -al` parancsot. + +``` +$ ls -al +total 20 +drwxrwxr-x 3 rlacko rlacko 4096 okt 9 15:24 . +drwxrwxr-x 12 rlacko rlacko 4096 okt 8 16:49 .. +drwxrwxr-x 8 rlacko rlacko 4096 okt 9 15:24 .git +-rw-rw-r-- 1 rlacko rlacko 15 okt 8 20:43 .gitignore +-rw-rw-r-- 1 rlacko rlacko 11 okt 9 15:24 gyumolcskosar +-rw-rw-r-- 1 rlacko rlacko 0 okt 8 20:09 hordo +-rw-rw-r-- 1 rlacko rlacko 0 okt 8 20:42 jegyzeteim.txt +``` + +LĂĄthatĂł, hogy vissza lĂŠptĂźnk arra az ĂĄllapotra mikor mĂŠg +nem vĂĄltoztattunk rajta. + +Ez elkĂŠpesztĹen jĂł, ugyanis kĂŠt teljesen kĂźlĂśn ĂĄllĂł munkĂĄt +Ăgy elkĂźlĂśnĂtĂśttĂźnk egymĂĄstĂłl! + +Ărjuk a `gyumolcskosar` fĂĄjl vĂŠgĂŠre, hogy `szolo` ĂŠs mentsĂźk el +azzal az Ăźzenettel, hogy `Tettem a kosaramba szĹlĹt`. + +``` +$ git commit -m "Tettem a kosaramba szĹlĹt" +[master 932cbeb] Tettem a kosaramba szĹlĹt + 1 file changed, 1 insertion(+) +``` + +Most Ăşjra kiadva a `git log --graph --oneline` parancsot, +mĂĄr ĂŠrdekesebb eredmĂŠnyt lĂĄthatunk. + +``` +$ git log --graph --oneline + +* 15719cf (HEAD -> master) Tettem a kosaramba szĹlĹt +* 80560db jegyzeteim ignorĂĄlĂĄsa +* 30bf35d Hoztunk egy hordĂłt +... +``` + +MĂŠgis hova tĂźnt a mĂĄsik ĂĄgunk? +A git nem fogja alapbĂłl jelezni nekĂźnk azt amit nem lĂĄt +a jelenlegi mentĂŠstĹl vissza menve. +Hogy lĂĄssuk a mĂĄsik ĂĄgat is, tegyĂźk hozzĂĄ a `--all` kapcsolĂłt. + +``` +$ git log --graph --oneline --all + +* 15719cf (HEAD -> master) Tettem a kosaramba szĹlĹt +| * 7de1c94 (atnevezes) HozzĂĄadtam a txt kiterjesztĂŠst a gyĂźmĂślcskosar fĂĄjlhoz +|/ +* 80560db jegyzeteim ignorĂĄlĂĄsa +* 30bf35d Hoztunk egy hordĂłt +... +``` + +Na Ăgy mĂĄr lĂĄtjuk a mĂĄsik ĂĄgat is. +MĂŠg vizuĂĄlisabban jelenleg Ăgy ĂĄllunk: + +<div style="text-align:center"><img src="workshop/img/tree_awesome.png" alt="Tree with one branch" /></div> + +MenjĂźnk vissza az `atnevezes` ĂĄgra ĂŠs mĂłdosĂtsunk picit. + +``` +$ git checkout atnevezes +``` + +Majd pedig nevezzĂźk ĂĄt a `hordo`-t `hordo.txt`-re. + +``` +$ mv hordo hordo.txt +``` + +Ăs ezt is mentsĂźk el + +``` +$ git add . +$ git commit -m "Adtam kiterjesztĂŠst a hordĂłnak" +``` + +Egy ismĂŠtelt `git log`-al lĂĄthatjuk is a fĂĄnkat. + +``` +$ git log --graph --oneline --all + +* 9dcfc79 (HEAD -> atnevezes) Adtam kiterjesztĂŠst a hordĂłnak +* 7de1c94 HozzĂĄadtam a txt kiterjesztĂŠst a gyĂźmĂślcskosar fĂĄjlhoz +| * 15719cf (master) Tettem a kosaramba szĹlĹt +|/ +* 80560db jegyzeteim ignorĂĄlĂĄsa +``` + [ElĹzĹ](workshop/2_basics) | [KĂśvetkezĹ](remote/1_basics) diff --git a/docs/workshop/img/commit-and-tree.png b/docs/workshop/img/commit-and-tree.png new file mode 100644 index 0000000000000000000000000000000000000000..3ddf1cd5f9c1c29b1d2a09ebc78e4c8e3d2a70ee Binary files /dev/null and b/docs/workshop/img/commit-and-tree.png differ diff --git a/docs/workshop/img/commits-and-parents.png b/docs/workshop/img/commits-and-parents.png new file mode 100644 index 0000000000000000000000000000000000000000..d563972662bf2c253a6e8e4650e73989c1860d02 Binary files /dev/null and b/docs/workshop/img/commits-and-parents.png differ diff --git a/docs/workshop/img/tree_awesome.png b/docs/workshop/img/tree_awesome.png new file mode 100644 index 0000000000000000000000000000000000000000..caf009c581557a36deb64db61c16812cecd6a604 Binary files /dev/null and b/docs/workshop/img/tree_awesome.png differ diff --git a/docs/workshop/img/tree_with_one_branch.png b/docs/workshop/img/tree_with_one_branch.png new file mode 100644 index 0000000000000000000000000000000000000000..4fcaf811ca46d67b559de248f97b04f22477f0e9 Binary files /dev/null and b/docs/workshop/img/tree_with_one_branch.png differ